美文网首页iOS实用功能
iOS tableView与scrollow侧滑冲突处理方法以及

iOS tableView与scrollow侧滑冲突处理方法以及

作者: 上帝很忙 | 来源:发表于2016-08-03 17:46 被阅读711次

    需求:

        1.scrollow可以左右滑动翻页
        2.tableView在scrollow中某一页上
        3.侧滑cell弹出系统删除按钮
        4.侧滑cell以外、scrollow以内的地方,scrollow翻页
    

    问题:

    如果直接用UIScrollow和UITableView来实现,当侧滑cell时,并不能触发cell的侧滑事件,而是触发了scrollow的滑动翻页事件.因为这个侧滑手势被UIScrollow拦截了.

    处理方法:

    自定义scrollow,在.m里重写手势的 shouldReceiveTouch 方法

    .h文件

    @interfaceMyScrollow : UIScrollView<UIGestureRecognizerDelegate>
    @end
    

    .m文件

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
    {
        NSLog(@"%@",NSStringFromClass([touch.view class]));
        if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
            return NO;
        }
        return  YES;
    }
    

    用自定义好的scrollow来add tableview,就可以解决手势冲突问题.

    注意:

    如果用了自定义的tableViewCell,不要给cell添加背景图.即:

    [self.contentView addSubview:_bgImageView];
    

    否则shouldReceiveTouch方法会接收到UIView而不是我们需要的UITableViewCellContentView

    相关文章

      网友评论

        本文标题:iOS tableView与scrollow侧滑冲突处理方法以及

        本文链接:https://www.haomeiwen.com/subject/syoqsttx.html