美文网首页
手势优先级requireGestureRecognizerToF

手势优先级requireGestureRecognizerToF

作者: 雪_晟 | 来源:发表于2018-12-07 10:56 被阅读25次

前言

如果有两个手势,我们需要对手势进行优先级的设置,会用到下面的方法。

// create a relationship with another gesture recognizer that will prevent this gesture's actions from being called until otherGestureRecognizer transitions to UIGestureRecognizerStateFailed
// if otherGestureRecognizer transitions to UIGestureRecognizerStateRecognized or UIGestureRecognizerStateBegan then this recognizer will instead transition to UIGestureRecognizerStateFailed
// example usage: a single tap may require a double tap to fail
- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer;
大概意思是,创建另一个有联系的手势识别器,只要另一个手势状态为UIGestureRecognizerStateFailed这个手势才会被相应。如果另一个手势正在被响应,那么这个手势不会被响应。举个例子,单击与双击的冲突,scrollView的平移手势与系统的边缘手势冲突的时候可以使用。

比如分段控制器

如果用scrollview作为控制器的容器,那么此时可以这样设置:
[self.scrollView.panGestureRecognizer requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer];

其他一些手势代理方法

//手指触摸屏幕后回调的方法,返回NO则不再进行手势识别,方法触发等
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
//开始进行手势识别时调用的方法,返回NO则结束,不再触发手势
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer;
//是否支持多时候触发,返回YES,则可以多个手势一起触发方法,返回NO则为互斥
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;
//下面这个两个方法也是用来控制手势的互斥执行的
//这个方法返回YES,第一个手势和第二个互斥时,第一个会失效
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer NS_AVAILABLE_IOS(7_0);
//这个方法返回YES,第一个和第二个互斥时,第二个会失效
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer NS_AVAILABLE_IOS(7_0);

相关文章

  • 手势优先级requireGestureRecognizerToF

    前言 如果有两个手势,我们需要对手势进行优先级的设置,会用到下面的方法。 大概意思是,创建另一个有联系的手势识别器...

  • iOS手势总结

    手势并发执行的方法 手势的优先级设定 点按手势 UITapGestureRecognizer 长按手势 UIL...

  • 响应链与手势

    手势冲突与响应链的关系。手势优先级更高。

  • 防止scrollView手势覆盖侧滑手势

    //提高侧滑手势优先级 [_scrollView.panGestureRecognizerrequireGestu...

  • 手势响应 from 刀哥

    手势的优先级 比 uicontrol 高 假如 一个UIControl 子view 放到 一个带手势view 上。...

  • 手势的使用(UIGestureRecognizer)

    注意点 : 手势的优先级比较高,如果给tableView添加手势,那么会造成tableView无法滚动,是不是很慌...

  • 2. UIButton的事件响应

    前面介绍了响应的基础 和 手势的优先级https://www.jianshu.com/p/1e549c0669d8...

  • UIControl

    UIControl控件影响着手势识别器和响应链的优先级你能信~~(手动笑哭~~)UIControl是控件的基类,它...

  • iOS多手势冲突处理

    1.修改响应优先级 UIGestureRecognizer类中有两个方法 还有一种是直接对两个手势 2.同时响应 ...

  • 2015-10-27--手势优先级

    如果一张图片既要单击手势, 又要双击手势,要怎么处理,看完这句代码你就知道了 UITapGestureRecogn...

网友评论

      本文标题:手势优先级requireGestureRecognizerToF

      本文链接:https://www.haomeiwen.com/subject/kqazcqtx.html