iOS 手势冲突

UITableView以及ScrollView不能相迎TouchBegin处理

IOS开发之手势——UIGestureRecognizer 共存

// 关键在这一行,如果双击确定偵測失败才會触发单击
[singleRecognizer requireGestureRecognizerToFail:doubleRecognizer];

 

touchesBegan: withEvent: 不执行解决 good

touchesBegan: withEvent: / touchesMoved: withEvent: / touchesEnded: withEvent: 等只能被UIView捕获,当我们创建

UIScrollView 或 UIImageView 时,当点击时UIScrollView 或 UIImageView 会截获touch事件,导致touchesBegan: withEvent:/touchesMoved: withEvent:/touchesEnded: withEvent: 等方法不执行。

解决办法:当UIScrollView 或 UIImageView 截获touch事件后,让其传递下去即可(就是传递给其父视图UIView)

可以通过写UIScrollView 或 UIImageView 的category 重写touchesBegan: withEvent: / touchesMoved: withEvent: / touchesEnded: withEvent: 等来实现.

 

iOS 单击手势和双击手势共存问题

 //这行很关键,意思是只有当没有检测到doubleTapGestureRecognizer 或者 检测doubleTapGestureRecognizer失败,singleTapGestureRecognizer才有效

    [singleTapGestureRecognizer requireGestureRecognizerToFail:doubleTapGestureRecognizer];

 

关于UIScrollView不能响应UITouch事件的解决办法
覆盖touch事件
 ios的手势操作之UIGestureRecognizer浅析
 

从名字上我们就能知道, Tap(点击)、Pinch(捏合)、Rotation(旋转)、Swipe(滑动,快速移动,是用于监测滑动的方向的)、Pan (拖移,慢速移动,是用于监测偏移的量的)以及 LongPress(长按)。

 

解决右滑返回手势和UIScrollView中的手势冲突

原理:
scrollView的pan手势会让系统的pan手势失效,所以我们只需要在系统手势失效且scrollView的位置在初始位置的时候让两个手势同时启用就可以了。

解决iOS 加在UIScrollView上的UITableView滑动手势冲突问题办法

 

 

 

posted @ 2017-07-22 19:38  米粥米  阅读(492)  评论(0编辑  收藏  举报