Tableview上添加手势点击收回键盘/滑动收回键盘

330 阅读1分钟

Tableview上添加手势点击收回键盘/滑动收回键盘

1.滑动收回键盘(使用拖动,不要使用scrollViewDidScroll,输入框再下方时,弹起键盘会有影响)

///开始触摸滑动

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{

    

    if (self.beginDragBlock) self.beginDragBlock();

}

2.tableview上添加手势

2.1添加点击手势

        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];

        tap.cancelsTouchesInView = NO;(默认为YES 仅点击的控件响应,NO时会穿透,cell上控件以及tap时间同事响应)

        tap.delegate = self;

        [_tableView addGestureRecognizer:tap];

2.2实现代理

  • (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {

    DebugLog(@"%@",NSStringFromClass([touch.view class]));

//根据情况进行处理

//如果点击UITextfiled的删除按钮时特殊处理一下,键盘会消失后弹出

    if ([NSStringFromClass([touch.view class]) isEqualToString:@"_UITextFieldClearButton"]) {

        return NO;

    }

//如果想自己控制tableviewcell的点击做如下处理

if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {

        

        return NO;

    }

    return YES;

}

///点击手势

  • (void)tap:(UITapGestureRecognizer* _Nullable)tap{

    [self.view endEditing:YES];

}