欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

IOS开发之手势响应事件优先级的实例详解

程序员文章站 2023-12-20 19:45:22
ios开发之手势响应事件优先级的实例详解 交互响应事件都是通过手势的操作完成的,如点击、或双击、或长按,这些交互都是在视图中完成的,但是不同的视图可能会有不同的交互,有时...

ios开发之手势响应事件优先级的实例详解

交互响应事件都是通过手势的操作完成的,如点击、或双击、或长按,这些交互都是在视图中完成的,但是不同的视图可能会有不同的交互,有时候就会出现交互响应事件冲突的情况。这时候就需要处理事件优先级,以便达到想要的效果。

示例场景:一个自定义模式视图view中,有一个列表视图table,同时有一个确定的按钮视图button;在view中有一个单击事件uitapgesturerecognizer,在table中点击每个cell也会有点击事件,同样的button中有个点击事件;三个视图中的事件是互不相干的,但也有可能会造成冲突,即达到的效果不是想要的。

解决方案:设置手势代理法,区分响应事件

1 代理协议

uigesturerecognizerdelegate 

2 添加的单击事件

uitapgesturerecognizer *recognizer = [[uitapgesturerecognizer alloc] initwithtarget:self action:@selector(singleclick)]; 
recognizer.delegate = self; 
[self addgesturerecognizer: recognizer]; 

3 优先级




#pragma mark - uigesturerecognizerdelegate 
 
- (bool)gesturerecognizer:(uigesturerecognizer *)gesturerecognizer shouldreceivetouch:(uitouch *)touch 
{ 
 if (gesturerecognizer.view == touch.view) 
 { 
  return yes; 
 } 
  
 return no; 
} 


 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

上一篇:

下一篇: