为 UIScrollView 添加点击事件,从而实现 scrollview 上的点击背景退出编辑状态。
直接代码呈上:
一、先要支持协议 UIGestureRecognizerDelegate
二、为你需要添加点击事件的 scrollview 添加点击手势
// 对 srcollView 添加点击响应
UITapGestureRecognizer *sigleTapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickBackView)];
sigleTapRecognizer.delegate=self;
sigleTapRecognizer.numberOfTapsRequired = 1;
[_baseScrollView addGestureRecognizer:sigleTapRecognizer];
三、点击后的处理 ----- 这里是点击 scrollview 上空白处才进行处理
// 点击背景取消所有编辑状态
-(void)clickBackView
{
NSLog(@" 点了一下背景 ");
[_baseScrollView endEditing:YES];
}
#pragma mark UIGestureRecognizerDelegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
// 输出点击的 view 的类名
NSLog(@"%@", NSStringFromClass([touch.view class]));
// 若为 ScrollView 的点击事件才响应,scrollview 上的 UIButton、UILabel 啥的点了也不会进哦
if ([NSStringFromClass([touch.view class]) isEqualToString:@"UIScrollView"]) {
return YES;
}
return NO;
}