iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iPad手势识别器 – 延迟响应大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的应用程序中,我添加了3.2 SDK中提供的新手势识别器.一切似乎都正常工作,屏幕上的响应时间非常快.但由于某些原因,当我将requireGestureRecognizerToFail添加到我的某些手势时,触发手势时会出现非常明显的延迟.下面是我用来创建手势识别器的代码片段.有谁知道为什么会有延迟以及我如何解决它?我正在使用RequireGestureRecognizerToFail来防止在用户执行DoubleTap时触发SingleTap手势.

- (void)createGestureRecognizers {

 //Single Finger Double-Tap
 UITapGestureRecognizer *singleFingerDTap = [[UITapGestureRecognizer alloc]
            initWithTarget:self action:@SELEctor(handleSingleDoubleTap:)];
    singleFingerDTap.numberOfTapsrequired = 2;
    [super addGestureRecognizer:singleFingerDTap];

 //Single Finger Tap
 UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer alloc]
              initWithTarget:self action:@SELEctor(handleSingleTap:)];
    singleFingerTap.numberOfTapsrequired = 1;
 [singleFingerTap  requireGestureRecognizerToFail:singleFingerDTap];
 [self addGestureRecognizer:singleFingerTap];

 //Two Finger Pan
 UIPanGestureRecognizer *panGesture2 = [[UIPanGestureRecognizer alloc]
            initWithTarget:self action:@SELEctor(handlePanGesture2:)];
    panGesture2.maximumnumberOfTouches = 2;
 [super addGestureRecognizer:panGesture2];

 //Single Finger Pan
 UIPanGestureRecognizer *panGesture1 = [[UIPanGestureRecognizer alloc]
             initWithTarget:self action:@SELEctor(handlePanGesture1:)];
    panGesture1.maximumnumberOfTouches = 1;
 [panGesture1 requireGestureRecognizerToFail:panGesture2];
 [super addGestureRecognizer:panGesture1];

 [singleFingerDTap release];
 [singleFingerTap release];
    [panGesture1 release];
 [panGesture2 release];
}

解决方法

如果你想要区分单击和双击,你必须等待足够长的时间才能确定没有第二次敲击即可,然后你可以单击它.另一种方法是设计所有单击操作,以便在检测到双击时可以异步取消或恢复它们.

例如,如果您只有一个点击更改页面和双击缩放,则必须在单击时更改页面动画,然后在检测到第二个点击时反转动画并缩放.到那时,处理单击的视图可能已经移动.在大多数情况下,这是更麻烦和困惑,那么它是值得的.

大佬总结

以上是大佬教程为你收集整理的iPad手势识别器 – 延迟响应全部内容,希望文章能够帮你解决iPad手势识别器 – 延迟响应所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。