屏蔽手势UIGestureRecognizer 先后响应
2013-11-28 09:12
295 查看
在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];
如下例子:
在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];; }
相关文章推荐
- 在手势中屏蔽响应事件继续向父视图传递
- iOS-响应上下左右滑动手势
- 这个坑,你遇到过吗?关于UIView上添加一个手势,导致子视图为UIButton的无法响应的问题
- iOS-响应上下左右滑动手势
- iOS-响应上下左右滑动手势
- 奇怪的现象:touchesBegan: 与UITapGestureRecognizer手势没有人响应 以及set方法的妙用
- Android PullToRefresh 分析之三、手势响应
- [深入剖析React Native]手势响应讲解
- 高德地图添加手势不响应
- 常见手势的响应事件
- iOS 左右滑动 手势 响应方法
- iOS-响应上下左右滑动手势
- 【iOS】Button点击事件被其父视图点击手势UITapGestureRecognizer的屏蔽问题
- 屏蔽IE的刷新前进后退(注:键盘响应事件,工具栏上还没有找到好的方法)
- EditText的点击事件屏蔽键盘响应
- iOS-响应上下左右滑动手势
- (4.2.7.3)Android PullToRefresh 分析之三、手势响应
- IOS 手势、手势响应器UIGestureRecognizer
- UIImage手势识别无响应
- 关于手势和响应事件