gpt4 book ai didi

ios - 如何从用户函数中获取对单元格的引用

转载 作者:行者123 更新时间:2023-11-29 00:31:11 27 4
gpt4 key购买 nike

我创建了带有 UILabel 和 Button 的自定义单元格。在我将 UIButton 连接为 Controller 中的操作后。如果触摸按钮,它会按照预期更改图像,但我想要的是,触摸后也更改 UILabel 的背景颜色。如何获取对我的自定义单元格的引用。

@IBAction func selectCell(_ sender: UIButton) {
if sender.imageView?.image == UIImage(named: "do") {
sender.setImage(UIImage(named: "done"), for: .normal)
} else {
sender.setImage(UIImage(named: "do"), for: .normal)
}
}

最佳答案

为什么不使用委托(delegate)系统?这将使您能够轻松获得对单元格的引用。

在你的 cell.swift

@objc protocol CellDelegate: class {
func buttonPressed(forCell cell: Cell)
}

然后在您的单元类中:您需要有一个委托(delegate)属性、您的 IBAction 方法以及设置委托(delegate)的方法:

class Cell {

fileprivate weak var delegate: CellDelegate? = nil


func setup(withDelegate delegate: CellDelegate) {
self.delegate = delegate
}


@IBAction func deleteButtonPressed(_ sender: Any) {
if sender.imageView?.image == UIImage(named: "do") {
sender.setImage(UIImage(named: "done"), for: .normal)
} else {
sender.setImage(UIImage(named: "do"), for: .normal)
}

delegate?.buttonPressed(forCell: self)
}

}

最后在 TableViewController 中:您需要在单元配置期间将委托(delegate)设置为 self,并实现委托(delegate)方法:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellIdentifier = viewModel.cellIdentifier(for: indexPath)

let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! Cell

cell.setup(withDelegate: self)

return cell
}


extension: TableViewController: CellDelegate {

func buttonPressed(forCell cell: Cell) {
//Do what you want
}

}

这就是我通常为单元格设置操作的方式

关于ios - 如何从用户函数中获取对单元格的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41765661/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com