美文网首页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