美文网首页
【Objective-C】解决轻拍手势事件与TableView的

【Objective-C】解决轻拍手势事件与TableView的

作者: 酷酷的小虎子 | 来源:发表于2016-08-22 19:55 被阅读237次

    问题描述:UITableView上添加了轻拍手势,手势时间里写了回收键盘,此时UITableView的Cell点击方法就和轻拍手势时间冲突,此时该怎么解决问题?

    解决方法:
    1.当前的ViewController签协议,UIGestureRecognizerDelegate
    2.写手势的代理方法

    -(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch {
        if([NSStringFromClass([touch.view class])isEqual:@"UITableViewCellContentView"]){
            return NO;//当触碰到TableView的Cell的ContentView手势事件不响应
        }
        return YES;
    }
    

    问题追加:那如果TableView上又嵌套一个CollectionView怎么办,这个代理方法还有效吗?

    解决方法:
    这个代理方发还是有效的

    -(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch {
        if([NSStringFromClass([touch.view class])isEqual:@"UITableViewCellContentView"] || [NSStringFromClass([touch.view class])isEqual:@"UIView"]){
            return NO;//多加一个逻辑判断触碰到View时也让手势事件不响应
        }
        return YES;
    }
    

    这个代理方法是苹果官方提供的,大概也是考虑到开发者能遇到这样的小问题吧

    相关文章

      网友评论

          本文标题:【Objective-C】解决轻拍手势事件与TableView的

          本文链接:https://www.haomeiwen.com/subject/uhvqsttx.html