美文网首页iOS开发SB CelliOS开发技巧
UITableView点击cell不走didSelect方法原因

UITableView点击cell不走didSelect方法原因

作者: 方同学哈 | 来源:发表于2016-01-12 18:35 被阅读4197次

    随笔

    今天开发中遇到一个很奇葩的问题,就是用tableView把界面写好之后,然后准备写点击事件。却发现死活不走didSelect这个协议方法。代理那些都设置了,直接断点打在那,却一直不走。开始认为是哪个控件把cell遮挡住了,然后我把所有的控件都注释掉,却发现还是不走。于是上网查了一下,有人说是因为这个方法

    - (NSIndexPath *)tableView:(UITableView *)tableView
      willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        return nil;
    }
    

    我试了一下,这样的确不会走didSelect方法。因为我把自定义cell改为了UItableViewCell做实验。但是我代码中根本没写这个方法,所以不会是返回nil的原因。。然后我再仔细检查了一下,最终找到原因。
    原因就是我在自定义tableViewCell中加了touchBegin这个方法

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    {
        [_bgView removeFromSuperview];
    }
    

    把这个注释掉就可以了。。。

    相关文章

      网友评论

      • Rooses兵:还有可能是在XIB中把selection的属性设置为NO Selection 了
      • vyronLee:太感谢了,我接手别人模块,也是这个问题,3q3q
      • 朋友有朋:受教了,没试过
      • 矩阵阅读:你在touch这个方法没有调用super
        LD_左岸:@mikegod 我的tableview一点击cell 所有的cell就消失不见了 而且didSelected和willDidSelected方法都不走!但是返回cell高度和数据源方法都可以执行。我设置的继承与NSObject的自定义转场类作为的tableview的数据源和delegate。 代理都设置了。
        8b415deb2960:@追梦小子的技术小屋 没有调用super会导致响应链断裂
        方同学哈:@后朴 调用了就不会那样了吗?
      • 呦释原点:受教了

      本文标题:UITableView点击cell不走didSelect方法原因

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