Ios 如果UITableView位于UIScrollView中,则无法在UITableView上执行滑动删除

Ios 如果UITableView位于UIScrollView中,则无法在UITableView上执行滑动删除,ios,uitableview,uiscrollview,Ios,Uitableview,Uiscrollview,我创建了一个UITableView,它可以在正常情况下对其表单元格执行“滑动以删除”操作,但当我将UITableView放入可水平滚动的UIScrollView时,外部scrollview将吞下滑动事件,因此“滑动以删除”操作不可行 试试这个条件 if(ScrollView==self.tableView)返回 在scrollviewdidscroll方法中。我很抱歉地告诉您,您必须为您的功能放弃一个,因为这两个功能依赖于相同的手势。 如果要保留滑动删除,请设置外部scrollview.scro

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

试试这个条件

if(ScrollView==self.tableView)返回


在scrollviewdidscroll方法中。

我很抱歉地告诉您,您必须为您的功能放弃一个,因为这两个功能依赖于相同的手势。
如果要保留滑动删除,请设置外部
scrollview.scrollEnabled=NO
。我想那会有帮助的


如果没有,请使用按钮启动tableview编辑模式。这将使您删除单元格,滚动视图可以滑动。

我终于找到了解决方案

子类化外部UIScrollView,并重写方法

-(BOOL)手势识别器应开始:(UIGestureRecognizer*)手势识别器


并确保UITableView实例位于AllowSweepScrollView中。

@Yoko如果此方法返回否,内部UITableView将自动接收刷卡事件。
@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