有时我们添加的UIGestureRecognizer识别不出来,分析原因至少有以下三种可能:
- - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;
- - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer;
- - (BOOL)canBePreventedByGestureRecognizer:(UIGestureRecognizer *)preventingGestureRecognizer;
对应序号,分别解释:
- 一次手势动作,有可能触发多个手势时,这个接口询问这些手势能否并存。
- eg:一个横向的scrollview A,内有个竖向的自scrollview B,一次斜的swipe手势(本意是想横滑),可能只响应B的竖向滑动,你期望的A的横向却没发生。
- 解决方案:在该接口中识别你的手势,并return YES。注意不要扩大化了。
- 手势可能发生的条件,比如某些特殊情况下,不想让此手势发生,就return NO了。
- 有的手势之所以没发生,是因为它被别的手势阻止了。典型的如UITapGestureRecognizer手势,一个UITapGestureRecognizer永远不会阻止一个更高tap次数的UITapGestureRecognizer.
本文探讨了UIGestureRecognizer在iOS应用中可能遇到的识别冲突问题,包括如何判断手势是否能同时识别、手势开始的条件及如何避免手势被错误地阻止。通过理解这三个关键方法,开发者可以更好地控制手势识别的逻辑。
661

被折叠的 条评论
为什么被折叠?



