HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 防止UIScrollView的UIPanGestureRecognizer阻止UIScreenEdgePanGestureRecognizer大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个UIScrollView填充我的应用程序的一页上的屏幕,但是我想允许用户从屏幕边缘平移以显示其背后的视图.问题是UIScrollView从屏幕边缘的UIScreenEdgePanGestureRecognizer中窃取触摸.不幸的是,我无法从具有UIScrollView(反之亦然)的视图控制器访问UIScreenEdgePanGestureRecognizer,所以我无法使requireGestureRecognizerToFail的方法:因为我无法指定哪个手势识别器应该被允许失败.具有滚动视图的视图控制器是容器视图控制器的子视图控制器,其具有附加到容器视图控制器自己的视图之一的屏幕边缘平移手势识别器.

我也无法使用委托方法

-(BOOL)gestureRecognizer:shouldrequireFailureOfGestureRecognizer:

因为UIScrollView不允许我将视图控制器设置为滚动视图的UIPanGestureRecognizer的委托.

如何防止滚动视图从我自己的手势识别器中窃取边缘平移触摸?

解决方法

不幸的是,创建此行为可能是一个真正的P *** i * t ** A **.

幸运的是,即使您无法直接访问GestureRecognizer,也可以使用UIGestureRecognizer Delegate创建此行为.

-(BOOL)gestureRecognizer:shouldrequireFailureOfGestureRecognizer:
-(BOOL)gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
-(BOOL)gestureRecognizer:shouldBerequiredToFailByGestureRecognizer:

传递给委托方法的第二个参数(“otherGestureRecognizer”)会保留UIScrollView的PanGestureRecognizer(或私有Apple子类),当您的手势识别器与scrollView的“碰撞”时.

所以只需设置你的UIScreenEdgePanGestureRecognizer的委托来回复委托方法.

这两种方法的命名是非常不理想的,说实话,我真的不知道你的情况是正确的返回值.

昨天刚刚遇到这个问题,我通过野蛮审判解决了这个问题.错误.

我的情况下,从两个shouldrequireToFail和shouldBerequiredToFail方法返回NO,并从同时方法中返回YES解决了我的问题.

Note: Returning NO from both methods changed the behavior compared to not 
even implemenTing the methods at all. Even though the documentation says 
the default return value is NO.

但是,任何GestureRecognizer行为都可以通过使用委托方法来实现.但是如上所述,方法的命名只是很混乱.对于这些方法,没有什么有用的文档.

大佬总结

以上是大佬教程为你收集整理的ios – 防止UIScrollView的UIPanGestureRecognizer阻止UIScreenEdgePanGestureRecognizer全部内容,希望文章能够帮你解决ios – 防止UIScrollView的UIPanGestureRecognizer阻止UIScreenEdgePanGestureRecognizer所遇到的程序开发问题。

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

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