Swift:- 在自定义 tableview 单元格中单击按钮时将标签值增加 1

标签 swift uitableview swift4

我试图在自定义表格单元格内单击按钮时将标签值增加 1。我可以在不同的单元格中以不同的方式更改值,但问题是如果我在第一个单元格标签中点击 + 从 0 变为 1,当我在第二个单元格标签中点击 + 时直接从 0 变为 2,在其他单元格中依此类推。我该如何解决这个问题?

     var counts = 0

    @IBAction func addPressed(_ sender: UIButton) {
    let indexPath = IndexPath(row: sender.tag, section: 0)
    let cell = tblview.cellForRow(at: indexPath) as! HomeDetailsTableViewCell
    counts = (counts + 1)
    cell.lblNoOfItems.text = "\(counts)"
}

最佳答案

有两种方法可以实现:

1.controller 级别和每次按下 button< 时,保持 Array 中每个单元格的计数,从数组中获取计数并使用它,即

var counts = [Int](repeating: 0, count: 10) //10 is the number of cells here

@IBAction func addPressed(_ sender: UIButton) {
    let indexPath = IndexPath(row: sender.tag, section: 0)
    let cell = tblview.cellForRow(at: indexPath) as! HomeDetailsTableViewCell
    counts[indexPath.row] += 1
    cell.lblNoOfItems.text = "\(counts[indexPath.row])"
}

2. 将每个单元格的计数保存在自定义单元格本身中,即在 HomeDetailsTableViewCell 中,即

class HomeDetailsTableViewCell: UITableViewCell {
    var count = 0
    //Rest of the code...
}

@IBAction func addPressed(_ sender: UIButton) {
        let indexPath = IndexPath(row: sender.tag, section: 0)
        let cell = tblview.cellForRow(at: indexPath) as! HomeDetailsTableViewCell
        cell.count += 1
        cell.lblNoOfItems.text = "\(cell.count)"
}

此外,您实现添加 + button 的代码的方式不正确。您必须在 HomeDetailsTableViewCell 本身中实现它,即

class HomeDetailsTableViewCell: UITableViewCell {
    @IBOutlet weak var lblNoOfItems: UILabel!
    var count = 0

    @IBAction func addPressed(_ sender: UIButton) {
        self.count += 1
        self.lblNoOfItems.text = "\(self.count)"
    }
    //Rest of the code...
}

关于Swift:- 在自定义 tableview 单元格中单击按钮时将标签值增加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53076642/

相关文章:

ios - 清除搜索结果后,Swift Tableview 搜索结果单元格选择复选标记不保存

swift - 如何使用 swift 同步核心音频的输入和播放

swift - Xcode 11.2.1-Swift 5-无法将主 Storyboard "Main"更改为另一个 Storyboard "Start"

ios - 是否可以从应用程序或小部件禁用/启用移动数据?

ios - 一些 tableView 行不显示,除非我滚动然后消失

ios - 在表格 View 中根据网络响应设置不同的按钮标题

ios - 创建一个将迭代图像数组的 UIImageView

ios - 删除按钮覆盖 UITableViewCell 中的文本

swift - Xcode 项目中的 Cocoapods SwiftWebSocket - 找不到库

swift4 - 使用 Swift 4.0 编译的模块无法在 Swift 3.2.1 中导入