需求:
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
网友评论