UITapGestureRecognizer和UIButton的点击事件冲突的解决办法
来源:互联网 发布:c语言二级成绩查询 编辑:程序博客网 时间:2024/06/05 17:43
问题描述:
视图view上有一个UIButton实例btn,绑定了一个点击事件的响应方法buttonClicked:,由于某种需要(如点击空白区域收起键盘),为view添加了UITapGestureRecognizer手势,关键代码如下:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(resignRespond)]; [self.view addGestureRecognizer:tap]; [tap release];运行,点击按钮btn的时候,方法buttonClicked:未调用,调用的是UITapGestureRecognizer手势的回调方法resignRespond。也就是说UIButton的点击事件被UITapGestureRecognizer截获了,两者相互冲突。
解决方法:
设置UITapGestureRecognizer的代理,然后在协议方法中作判断,主要代码如下:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(resignRespond)]; tap.delegate = self; [self.view addGestureRecognizer:tap]; [tap release];UITapGestureRecognizer协议方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{ if ([touch.view isKindOfClass:[UIButton class]]) { return NO; } return YES;}
- UITapGestureRecognizer和UIButton的点击事件冲突的解决办法
- UITapGestureRecognizer和UIButton的点击事件冲突的解决办法
- UITapGestureRecognizer和UIButton的点击事件冲突解决
- iOS 6.0之前 UITapGestureRecognizer手势和UIButton 点击事件冲突
- 解决UITapGestureRecognizer手势与UITableView的点击事件的冲突
- UITapGestureRecognizer和UITableView点击事件冲突问题
- 父视图的UITapGestureRecognizer和子视图UICollectionView的cell点击冲突解决办法
- 在已经响应UITapGestureRecognizer的UIView中清晰的响应UIButton点击事件
- 在已经响应UITapGestureRecognizer的UIView中清晰的响应UIButton点击事件
- 如何解决UIScrollView中添加UITapGestureRecognizer跟UIButton点击事件冲突
- UIButton 的点击事件
- 解决UITapGestureRecognizer 与 UITableView 点击事件冲突
- iOS UIButton点击事件传递参数的解决办法
- ListView的长按事件和点击事件冲突的解决办法
- UIButton的响应点击事件
- UIView添加UITapGestureRecognizer和UITableView点击冲突
- hover和点击事件之间的冲突
- 背景视图上点击事件与tableView冲突的解决办法
- C++经典开源库
- Windows内核安全编程__键盘过滤之内核级Hook(一)
- IT市场惠普抢占先机
- 获取IE版本
- 刚刚才找回这个账号
- UITapGestureRecognizer和UIButton的点击事件冲突的解决办法
- extjs treepanel动态改变树节点的图标
- TMS320 C6000系列DSP之芯片支持库(Chip Support Library)
- cocos2d-x移植Android问题
- TCP的连接建立过程
- 常用资料
- ural1517
- 几个图像库,用于计算机视觉和数字图像处理
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间