UIScrollview 上的点击背景退出编辑状态

2023-03-27  本文已影响0人  炸街程序猿

为 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;

}
上一篇 下一篇

猜你喜欢

热点阅读