gpt4 book ai didi

Swift - 使用 .addTarget 为 UITableViewCell 制作一个按钮

转载 作者:行者123 更新时间:2023-11-28 05:52:37 31 4
gpt4 key购买 nike

我正在尝试为我在表格 View 中创建的每个单元格制作两个不同的按钮。其中一个按钮是 + 按钮,它将增加标签。但是在我的测试中,我无法使该功能正常工作。我当前的错误是

Argument of #selector does not refer to an '@objc' method, property, or initializer

我觉得我在实现 .addTarget 方法时完全错了,但我是新手。这是我的代码:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let item = items[indexPath.section]

let cell = tableView.dequeueReusableCell(withIdentifier: "itemCell") as! AddItemCell

cell.setCell(item: item)

let itemAmount = cell.itemAmount as UILabel?

cell.addButton.addTarget(self, action: #selector(addItem(sender:cell.addButton,forLabel:itemAmount!)), for: .touchUpInside)

}


@objc func addItem(sender: UIButton, forLabel label:UILabel) {

print("Add Button Clicked")

}

最佳答案

您使用的选择器语法不正确:

action: #selector(addItem(sender:cell.addButton,forLabel:itemAmount!))

就说:

action: #selector(addItem)

然而,你将面临一个新的问题。您认为可以通过某种方式使该按钮调用名为 addItem(sender:forLabel:) 的东西。你不能。将 addItem 的声明更改为 addItem(_ sender:UIButton)。这是按钮点击可以调用的唯一一种功能。

因此您将拥有发送者(按钮),但您必须从那里弄清楚标签是什么。 (这应该很容易,因为知道了按钮,就知道了单元格,知道了单元格,就知道了标签。)您不能将标签作为参数传递给按钮点击,但您不需要到。

关于Swift - 使用 .addTarget 为 UITableViewCell 制作一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52359418/

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