滑动单元格和水平滚动之间的冲突

时间:2016-07-18 17:06:24

标签: ios objective-c uitableview scroll cell

目前我有一个水平卷轴,里面有几页。其中一些页面的表格包含滑动的单元格。

  

这个想法是能够滑动单元格,完成此滑动后,以某种方式激活滚动滑动以移动到下一页。像这样:

enter image description here

但是当我尝试时,它会发生冲突,同时激活2个滚动。即当单元格正在移动并显示按钮时,滚动也会开始移动到另一页。

对于使用SWTableViewCell的滑动单元格,因为原生功能如下:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete) {
    }
}

即使没有激活,他们也会完全忽略细胞的滑动,只会滑动滚动。

谢谢,任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:2)

试试这个

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return TRUE;
}

答案 1 :(得分:0)

对于水平滚动视图,您是否设置了以下内容:

scrollView.cancelsTouchesInView = false

有关这方面的更多信息,请访问:https://developer.apple.com/reference/uikit/uigesturerecognizer/1624218-cancelstouchesinview

答案 2 :(得分:0)

试试这个

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    if ([[otherGestureRecognizer.view class] isSubclassOfClass:[UITableView class]]) {
        if ([otherGestureRecognizer isKindOfClass: [UIPanGestureRecognizer class]]) {
            UIPanGestureRecognizer *otherPan = (UIPanGestureRecognizer *)otherGestureRecognizer;
            CGPoint translation = [otherPan translationInView:otherGestureRecognizer.view];
            return translation.x < 0;
        }
    }
    return NO;
}