屏蔽手势UIGestureRecognizer 先后响应
2024-09-03 23:13:45
在iOS5一下对于手势的识别能力并不强,比如iOS6上面按钮的一个tap事件,最先接收的是uiview,并相应,而不是最上面的button,这时候就需要判断手势所在的位置和手势所在的控制器了
如下例子:
在scrollview上add 了一个单击事件
singletap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[singletap setNumberOfTapsRequired:1];
[scrollview addGestureRecognizer:singletap];
这样点击按钮,不会响应按钮的事件,直接跳到handleSingleTap去了?
单击事件不是应该先被直接单击的subview处理,如果没有处理才提交到supview处理嘛?
怎么才能让按钮响应单击事件?
使用
UIGestureRecognizerDelegate的一个方法判断点击的是哪个view,确定是否响应事件。
singletap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[singletap setNumberOfTapsRequired:1];
singletap.delegate = self;
[scrollview addGestureRecognizer:singletap];
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if(touch.view != scrollview){
return NO;
}else
return YES;
} 可结合下面方法
//TODO: 当手势在 tableview位置时候阻止触摸事件向下传递
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
// if (oldPassword.superview!=nil) {
// NSLog(@"%@",touch.view); CGPoint point=[touch locationInView:clientTableview];
NSLog(@"%f,%f",point.x,point.y);
if (point.x&&point.x<clientTableview.frame.size.width && point.y && point.y< clientTableview.contentSize.height) {
returnNO;
}
return [supergestureRecognizer:gestureRecognizer shouldReceiveTouch:touch];; }
最新文章
- 阿里云linux ecs服务器配置apache+php环境
- 你真的会用java replaceAll函数吗?
- Android登录等待效果
- php访问mysql数据库
- 关于mina框架EMFILE: open too many files exception的处理
- 七中滤波方法测试matlab实现
- 实例源码--Android软件更新模块
- Datediff函数 助你实现不同进制时间之间的运算
- Object -C NSNumber -- 笔记
- phpcms v9开源开发框架基础mvc解读
- .net转php laraval框架学习系列(一) 环境搭建
- Laravel学习笔记
- 在ibatis下匹配特殊手机号码(oracle数据库)
- linux下debug工具
- hdu 5700区间交(线段树)
- linux 删除命令
- php 5.6,7.0静态方法调用和new调用方法性能差距
- Publisher/Subscriber
- [转] createObjectURL方法 实现本地图片预览
- Learning-Python【31】:操作系统基础知识
热门文章
- tabhost中activity跳转动画不显示的解决办法
- opencv学习笔记-图像叠加、混合
- [置顶] Array ArrayList LinkList的区别剖析
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(38)-Easyui-accordion+tree漂亮的菜单导航
- Android中fragment_main.xml文件里的组件获取的问题
- 移植QT到ZedBoard(制作运行库镜像) 交叉编译 分类: ubuntu shell ZedBoard OpenCV 2014-11-08 18:49 219人阅读 评论(0) 收藏
- 怎样让HTML5调用手机摄像头拍照——实践就是一切
- Qt之XML(一) DOM
- iOS 复杂动画之抽丝剥茧
- python之enumerate枚举 第二篇(六):enumerate枚举