Ios中手势点击事件和tableView点击事件冲突

当前页面上内容有:

viewController上添加了一个手势,

viewController上加了一个子控件TableView。

当点击TableView的cell选择方法的时候,总是先执行viewController。


解决方法:

给手势添加代理方法:

UIGestureRecognizerDelegate


实现手势代理方法:

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


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

        return NO;

    }

    return YES;

}


如果你的不是TableView,那么在 isEqualToString 写入对应的信息字段即可


出现的问题:

在手机版本为8.3.2真机测试的时候。

测试还原场景:

1、点击某个入口,进入有手势和cell冲突页面

2、返回入口页面

3、再次点击入口,程序崩溃。

提示原因 [yourController gestureRecognizer:shouldReceiveTouch:]:message sent to deallocated instance 0*1582426e0。

意思应该是dealloc不存在的手势代理事件。


解决办法就是把代理关掉,尼玛,最后的结果是冲突没有解决。

在8.3的系统上测试有用,在其他的貌似没有(有也不清楚。因为公司配置的测试机记那么几台,模拟器测试,9.0以上没有,好像7.0上8.0下的也没有)



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值