微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

自定义 UITableViewCell 按钮未执行其功能

如何解决自定义 UITableViewCell 按钮未执行其功能

我的视图控制器中有一个带有自定义单元格的 tableview。在单元格中,我有一个函数可以做某事。我有一个正在执行的打印语句。

@objc func cellButtonTapped() {
    cellText.backgroundColor = .red
    print("cell button tapped")
}

当我点击按钮时,我确实在控制台中看到了打印语句,但它并没有像我想要的那样更改单元格背景颜色。

这是tableViewCell中的cellText

let cellText : UITextField = {
    let cellText = UITextField()
    cellText.isUserInteractionEnabled = false
    return cellText
}()

这是它在单元格中的布局。我不认为它的布局很重要

override func layoutSubviews() {
    super.layoutSubviews()
    contentView.addSubview(cellText)
    contentView.addSubview(cellButton)
    cellText.frame = CGRect(x: 0,y: 0,width: contentView.width - 30,height: contentView.height)
    cellButton.frame = CGRect(x: cellText.right,width: 30,height: contentView.height)
    
    

}

解决方法

我必须做的是在 viewController 中创建一个变量,其中包含单元格所需的值。就我而言,我希望保留一个布尔值。

var isBool : Bool = false 

然后我让按钮的函数改变变量值:

@objc func sendButtonTapped() {
    isBool = !isBool
    tableView.reloadData()
    print("send button tapped")
}

每次单击按钮时,这里的函数都会更改 bool 的值。

我将值传输到 tableview 中带有 cellForRowAt 的单元格。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。