情景
UIScrollview里包含一个UITableview,UITableview的cell是横向滑动的UICollectionView,因为是弹出模态的UIViewContoller,
代码简单的增加了个向右滑动的手势触发关闭手势。
问题:
左右滑动UICollectionView的时候会触发手势,触发关闭手势。
解决方案:
第一个能想到的方法当然就是在函数中
func gestureRecognizer(_gestureRecognizer:UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer:UIGestureRecognizer) ->Bool
返回false,这样就只会响应一个手势,另一个手势会被自动忽略
所以第一时间在UITableViewCell中,判断到otherGestureRecognizer是需要忽略的手势,返回false,看似一切完美,但是bug依然存在。
原因是, 需要忽略的是返回手势的事件,因此你需要在添加返回手势的UIView或者UIViewController中,重写gestureRecognizer方法,并且检测到otherGestureRecognizer是由UICollectionView触发的时候,返回false,这样返回手势的方法就会被忽略
完整代码:
网友评论