我创建了一个UITableView,可以在正常情况下对其表格单元格执行滑动删除,但是当我将UITableView放入可以水平滚动的UIScrollView时,外部scrollview将吞下滑动事件,因此滑动到删除是不可行的。
答案 0 :(得分:1)
我很抱歉地告诉你,你必须放弃一个功能,因为这两个功能依赖于同一个手势。
如果要保留滑动删除,请设置外部scrollview.scrollEnabled = NO
。我认为这会有所帮助。
如果没有,请使用按钮启动tableview编辑模式。这将使你删除单元格,滚动视图可以滑动。
答案 1 :(得分:1)
我终于找到了解决方案!
对外部UIScrollView进行子类化,并覆盖方法
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
@interface AllowSwipeScrollView : UIScrollView
@end
@implementation AllowSwipeScrollView
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
BOOL inTableViewCell = .... // check the current touch is in table view cell
if (inTableViewCell) {
return NO;
}else{
return [super gestureRecognizerShouldBegin:gestureRecognizer];
}
}
@end
确保UITableView实例位于AllowSwipeScrollView。
答案 2 :(得分:0)
尝试此条件
if(ScrollView == self.tableView)返回;
在scrollviewdidscroll方法中。