我正在尝试使用滑动手势以及开始/移动/结束触摸中的一些逻辑。理想情况下,如果
:- 用户向左/向右滑动,触摸开始/移动/结束逻辑不被调用(或取消)。
- 对于所有其他情况,触摸开始/移动/结束逻辑像往常一样调用。
这可能吗?
我尝试添加以下内容(基于进程触摸事件和手势识别器),但仍然调用移动/结束的触摸:
leftSwipeGestureRecognizer.delaysTouchesBegan = true
self.leftSwipeGestureRecognizer.cancelsTouchesInView = false
应该是:
self.leftSwipeGestureRecognizer.cancelsTouchesInView = YES
这意味着:如果手势被识别,触摸将被取消,否则,触摸开始/移动/结束被调用。
从文档:
当此属性为 YES(默认值)并且接收方识别 它的手势,那个手势的触摸不是 已交付到视图,之前交付的触摸将被取消 通过触摸取消:与事件:发送到视图的消息。如果 手势识别器无法识别其手势,或者如果值 此属性为 NO,视图接收多点触控中的所有触摸 序列。
我将为开始/移动/结束的触摸中的新行为创建自定义UIGestureRecognizer
。有用的链接在这里。然后我会为滑动和自定义识别器设置delegate
,并实现gestureRecognizer:shouldRequireFailureOfGestureRecognizer:
方法来满足要求。文档链接。