为嵌套在左右滑动的UIScrollview上的UITableView增加左滑手势删除

  • 情况:底部为UIScrollView,上面两个UITableView,现在要在右边的TableView的Cell上添加左滑删除功能,但是添加手势之后发现被底部的UISrollView识别了,而Cell的手势未被识别。
  • 解决办法:新建一个自己的scrollView继承UIScrollView,重写手势代理方法
@interface MyScrollview : UIScrollView```

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if (gestureRecognizer.state != 0) {
return YES;
} else {
return NO;
}
}```

  • 意思就是:如果这个手势没有被识别,那么就多个gestureRecognizer可以同步识别,然后用这个ScrollView替换原来的UIScrollView就可以了

  • 手势是大家的,但是代理是一个人的。

  • 这样又带来另外一个问题,在左右滑动时,tableView可以同时上下滑动。哎,不怪人家,都说了手势事件大家都可以响应嘛。。。

  • 这个好解决:在viewController中处理下滚动时的事件

#pragma mark - ScrollView delegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
 if (scrollView == _contentView) {
      self.leftTableView.scrollEnabled = NO;  
      self.rightTableView.scrollEnabled = NO; 
  }
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
 if (scrollView == _contentView) {  
       self.leftTableView.scrollEnabled = YES;  
       self.rightTableView.scrollEnabled = YES; }
}```


你可能感兴趣的:(为嵌套在左右滑动的UIScrollview上的UITableView增加左滑手势删除)