如果它在UIScrollView中,则无法在UITableView上执行滑动到删除

时间:2014-12-02 10:49:20

标签: ios uitableview uiscrollview

我创建了一个UITableView,可以在正常情况下对其表格单元格执行滑动删除,但是当我将UITableView放入可以水平滚动的UIScrollView时,外部scrollview将吞下滑动事件,因此滑动到删除是不可行的。

3 个答案:

答案 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方法中。