83.手势过滤和手势屏蔽
2016-04-08 16:47
274 查看
如何屏蔽指定区域利用 tap 手势, 利用 tap 手势, 在其代理方法中进行区域限制, 然后根据需要返回 YES / NO
另外在公开 API 中 , GestureRecognizer总共6个代理方法, 如下:
最后附上私有 API 中的两个代理方法, 有兴趣的可以看一看, 审核是否会被拒, 这个本人没有试验过, 不可得知:
#import "ViewController.h" @interface ViewController ()<UIGestureRecognizerDelegate> @property (weak, nonatomic) IBOutlet UIView *bottomView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapEvent)]; tap.delegate = self; [_bottomView addGestureRecognizer:tap]; } - (void)tapEvent { NSLog(@"点击了我"); } //屏蔽某些位置点击是否可用 -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) { CGPoint position = [touch locationInView:_bottomView]; //屏蔽手势 if (position.x < 150) { return NO; } } return YES; }
另外在公开 API 中 , GestureRecognizer总共6个代理方法, 如下:
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { return YES; } -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { return YES; } -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceivePress:(UIPress *)press { return YES; } -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return YES; } -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return NO; } -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return YES; }
最后附上私有 API 中的两个代理方法, 有兴趣的可以看一看, 审核是否会被拒, 这个本人没有试验过, 不可得知:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer canBePreventedByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { BOOL result = YES; // something you do return result; } - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer canPreventGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { BOOL result = YES; // something you do return result; }
相关文章推荐
- 你的产品该如何做好?—NPS
- Android ORM框架 greenDao使用
- android项目总结
- const的用法总结
- javascript Prototype constructor的理解(转)
- USB2.0学习笔记连载(十八):keil实现寄存器的配置及相关函数讲解(二)
- iOS学习笔记10-UIView动画
- android 应用退到后台,类似最小化moveTaskToBack(),判断是否是task的根isTaskRoot()
- 礼拜五log~jBox
- Android开发小技巧之对android颜色渐变(Gradient )的改进
- 实现数组作为函数参数传递,切返回值也是数组
- 23种设计模式(java)二
- PHP中命名空间不足之详解
- 『NYIST』第九届河南省ACM竞赛队伍选拔赛[正式赛二]-最小内积(第八届北京师范大学程序设计竞赛决赛)
- linux添加网关和出接口不同网段的路由
- leetcode 53. Maximum Subarray
- 深入浅出数据仓库中SQL性能优化之Hive篇
- win7虚拟机无法上网
- 解决ListBox拦截滚轮滚动事件
- CentOS下载