Swift5.0 TableViewCell添加Button按钮

2021-04-23  本文已影响0人  孙国立
问题描述

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

排查问题
        self.addSubviews([headerView,contentInfoView])
        headerView.addSubviews([orderNumberLabel,statusLabel])
        contentInfoView.addSubviews([toDetailLabel,timeLabel,questionLabel,userInfoView,lineView,operateRightBtn,operateLeftBtn,madeTimeLabel])

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

//伪代码
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按钮点击事件还是不响应
发现此问题后又做了下面的这个操作


通过这个问题我们可以大体的猜到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上按钮点击事件无法响应的问题,欢迎大家来补充交流

上一篇下一篇

猜你喜欢

热点阅读