需求:
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