fix手势冲突

2018-12-05  本文已影响0人  limbo_lyn

情景

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,这样返回手势的方法就会被忽略

完整代码:

注意,是在被忽略的手势的UIView或者UIViewController中重写该方法

上一篇 下一篇

猜你喜欢

热点阅读