例子:
设置一个背景视图
DoModalView = [[UIView alloc]initWithFrame:[UIScreen mainScreen].bounds];
DoModalView.backgroundColor = [UIColor colorWithRed:0.3 green:0.3 blue:0.3 alpha:0.6];
添加手势
UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(removesubViews)];tapGesture.delegate = self;
[DoModalView addGestureRecognizer:tapGesture];
方法实现
- (void)removesubViews
{
[lockapplyTabview removeFromSuperview];
[DoModalView removeFromSuperview];
}
冲突解决(避免tabview,textfield等的手势不响应)
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
if ([touch.view isKindOfClass:[UITextField class]])
{
return NO;
}
// 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件
if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
return NO;
}
return YES;
}