相关疑难解决方法(0)

如何在UIView中优先考虑手势识别器和触摸

通过阅读UIGestureRecognizer类参考,暗示API将为您处理触摸和手势控制的优先级,确保touchesBegan在视图上不调用您的和相关方法,除非手势识别器首次失败:

窗口将触摸事件传递给手势识别器,然后将其传递到连接到手势识别器的经过测试的视图.通常,如果手势识别器分析多触摸序列中的触摸流并且不识别其手势,则视图接收全部触摸.如果手势识别器识别其手势,则取消视图的剩余触摸.

我在我的视图中添加了一个滑动手势,它正在工作.通过一些日志记录,当我进行单次滑动时,该方法会报告.但是,我的touchesBegan方法通过其日志报告,尽管该touchesCancelled方法正如预期的那样也接收消息.

我希望并期望手势能够识别以防止touchesBegan或被touchesMoved召唤.

所以我的问题是:对于手势识别器实际上根据其状态延迟触摸,是否需要额外的设置?文档没有必要提出任何其他建议.

我的设置很简单:

 swipeUpTwoFinger=[[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(doubleSwipeUp:)]autorelease];
swipeUpTwoFinger.direction=UISwipeGestureRecognizerDirectionUp;
swipeUpTwoFinger.numberOfTouchesRequired=2;
[self addGestureRecognizer:swipeUpTwoFinger];
Run Code Online (Sandbox Code Playgroud)

我也尝试过这种测试,以确保识别器已与处理之前失败的touchesBegan(这个测试应该不会,如果你相信什么文档上面说是必要的),但touchesBegan仍在处理此试验后,在日志行:

if (swipeUpTwoFinger.state==UIGestureRecognizerStateFailed)

iphone objective-c uiview uigesturerecognizer ios

6
推荐指数
1
解决办法
4734
查看次数

标签 统计

ios ×1

iphone ×1

objective-c ×1

uigesturerecognizer ×1

uiview ×1