gpt4 book ai didi

ios - 递归 UITableViewCell 按钮 Action

转载 作者:行者123 更新时间:2023-11-28 12:25:08 27 4
gpt4 key购买 nike

我能够生成一个 UITableView 和一个 UITableViewCell 但是我的操作没有正常工作。我的用例类似于 this video

我正在使用 this问题作为引用,未解决

我错过了什么?与 swift 3 相关的东西?

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var tableView: UITableView!

var categories = ["foo", "bar"]

func logAction(sender: UIButton!){
print("HIT BUTTON YO")
}

public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.categories.count
}

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:CustomCell = tableView.dequeueReusableCell(withIdentifier: "categories", for: indexPath) as! CustomCell
cell.label.text = categories[indexPath.row]
let button = cell.button
button?.tag = indexPath.row
button?.addTarget(self, action: #selector(self.logAction), for: .touchUpInside)
return(cell)
}
}


class CustomCell: UITableViewCell {

@IBOutlet weak var button: UIButton!
@IBOutlet weak var label: UILabel!


override func awakeFromNib() {
super.awakeFromNib()
}

override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
//Configure view for selected state
}
}

最佳答案

有一种更智能的方法来处理自定义单元格中的按钮操作。

在自定义单元格中创建一个没有参数/没有返回值的回调闭包和一个连接到按钮的 IBAction。在 Action 中调用回调

class CustomCell: UITableViewCell {

@IBOutlet weak var button: UIButton!
@IBOutlet weak var label: UILabel!

var callback : (()->())?

@IBAction func logAction(_ sender : UIButton) {
callback?()
}
}

cellForRow中为回调分配一个闭包,捕获索引路径。

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "categories", for: indexPath) as! CustomCell
cell.label.text = categories[indexPath.row]
cell.callback = {
print("Button pressed", indexPath)
}
return cell
}

注意:return 不是函数(没有括号)。

关于ios - 递归 UITableViewCell 按钮 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43641064/

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