IOS开发种多手势的解决方法

来源:爱站网时间:2021-01-05编辑:网友分享
IOS开发中手势开发是比较合理的,合理的使用手势有更好的体验,在使用手势时,也要注意避免手势与手势之间的冲突,本文是爱站技术小编介绍的 IOS开发种多手势的解决方法,需要的朋友可以参考下文。

IOS开发中手势开发是比较合理的,合理的使用手势有更好的体验,在使用手势时,也要注意避免手势与手势之间的冲突,本文是爱站技术小编介绍的 IOS开发种多手势的解决方法,需要的朋友可以参考下文。

IOS中多手势之间的冲突和解决办法

UIImageView默认是不支持交互的,也就是userInteractionEnabled=NO ,因此要接收触摸事件(手势识别),必须设置userInteractionEnabled=YES(在iOS中UILabel、UIImageView的userInteractionEnabled默认都是NO,UIButton、UITextField、UIScrollView、UITableView等默认都是YES)。

在iOS中,如果一个手势A的识别部分是另一个手势B的子部分时,默认情况下A就会先识别,B就无法识别了。要解决这个冲突可以利用- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer;方法来完成。这个方法可以指定某个手势执行的前提是另一个手势失败才会识别执行。

//解决在图片上滑动时拖动手势和轻扫手势的冲突
[panGesture requireGestureRecognizerToFail:swipeGestureToRight];
[panGesture requireGestureRecognizerToFail:swipeGestureToLeft];
//解决拖动和长按手势之间的冲突
[longPressGesture requireGestureRecognizerToFail:panGesture];

通过下边的方法可以实现同一视图多个手势操作,

  1. 遵循UIGestureRecognizerDelegate,
  2. 重写相应的方法,
  3. 指定手势代理者
  4. 利用代理的方法
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

(这个代理方法默认返回NO,会阻断继续向下识别手势,如果返回YES则可以继续向下传播识别。)

上述是爱站技术频道小编和大家分享的IOS开发种多手势的解决方法,希望上述的介绍能为大家学习带来帮助,也希望能一如既往的支持js.aizhan.com。

上一篇:IOS开发中多线图封装的操作

下一篇:IOS开发中封装静态库的使用区别

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载