Swift5.0 TableViewCell添加Button按钮点击无反应的问题

问题描述

公司项目中有一个列表使用tableViewCell实现的,在tableViewCell中添加了两个按钮,但是在点击按钮的时候发现按钮的点击事件没有相应

排查问题
  • 查看代码是否有问题
    cell添加控件的代码
        self.addSubviews([headerView,contentInfoView])
        headerView.addSubviews([orderNumberLabel,statusLabel])
        contentInfoView.addSubviews([toDetailLabel,timeLabel,questionLabel,userInfoView,lineView,operateRightBtn,operateLeftBtn,madeTimeLabel])

在此处看来貌似没有什么问题。然后我又做了如下的操作

  • 删除现有的所有的添加在Cell中的控件,定义一个占满Cell控件的button按钮
//伪代码
let btn = UIButton.init(frame: CGRect(x: 0 ,y : 0 ,width : cell.width, height : cell.height))
btn.addTarget(self, action: #selector(act), for: .touchUpInside)
self.addSubview(btn)

发现这时候添加上的button按钮点击事件还是不响应
发现此问题后又做了下面的这个操作

  • 将button按钮添加到CellcontentView上面。
    发现将控件添加到contentView以后按钮的点击事件正常

通过这个问题我们可以大体的猜到cell的contentView从以前的下层位置提升到了最上层来了,于是我使用了如下的代码进行了测试发现按钮的点击事件依然好用

        let btn = UIButton.init(frame: CGRect(x: 0, y: 0, width: cellWidth, height: cellHeight - 10))
        btn.backgroundColor = .red
        btn.addTarget(self, action: #selector(act), for: .touchUpInside)
        self.insertSubview(btn, aboveSubview: contentView)

此处使用insertSubview(btn, at: )是没有效果的。这一块我没有去查询contenView具体是如何添加的,所以不知道contentView对应的值是多少也就没法测试。如果有哪位大佬研究过这个问题还请不吝赐教,在此先行谢过了。

关于其他一些关于tableViewCell上按钮点击事件无法响应的问题,欢迎大家来补充交流

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容