為 UIScrollView 添加點擊事件,從而實現(xiàn) scrollview 上的點擊背景退出編輯狀態(tài)。
直接代碼呈上:
一、先要支持協(xié)議 UIGestureRecognizerDelegate
二、為你需要添加點擊事件的 scrollview 添加點擊手勢
// 對 srcollView 添加點擊響應
UITapGestureRecognizer *sigleTapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickBackView)];
sigleTapRecognizer.delegate=self;
sigleTapRecognizer.numberOfTapsRequired = 1;
[_baseScrollView addGestureRecognizer:sigleTapRecognizer];
三、點擊后的處理 ----- 這里是點擊 scrollview 上空白處才進行處理
// 點擊背景取消所有編輯狀態(tài)
-(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;
}