exclusiveTouch属性:
默认是NO,如果设置为YES则当前UIView会独占整个Touch事件。具体来说就是如果UIView设置了exclusiveTouch属性为YES则当这个UIView成为第一响应者时,在手指离开屏幕前其他view不会响应任何touch事件。
举例说明:
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[self.view addSubview:btn];
btn.backgroundColor = [UIColor redColor];
btn.frame = CGRectMake(10, 120, 50, 50);
[btn addTarget:self action:@selector(btnclick) forControlEvents:UIControlEventTouchUpInside];
[self.view setExclusiveTouch:YES];
}
- (void)btnclick{
NSLog(@"1234567890");
}
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
NSLog(@"touchesEnded");
}
当两个手指同时一个触碰按钮,一个触碰空白处view时,只会响应touchesEnded事件而不会触发btnclick方法,而如果setExclusiveTouch默认为no时,则响应touchesEnded事件的时候,也会触发btnclick方法。