使用单元格中的按钮增加该特定单元格的值

时间:2016-06-27 23:07:58

标签: ios swift uitableview

如何为特定单元格增加值?

我看到了thisthis。先前我无法工作(并且“脆弱”?),前者导致功能incrementHandler()decrementHandler()的分段错误。

class cell : UITableViewCell {
     @IBOutlet weak var counter: UILabel
     @IBAction func add (sender: AnyButton) {
          counter.text = String(Int(counter.text) + 1) 
          // find it's corresponding stat value (from other class) and update it
          stats[indexPath].counter = Int(counter.text)
     }
}


class tableView: UITableViewController {
    var stats = [Stat]()
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier(cellID, forIndexPath: indexPath) as! ExpandedControllerCell
        let stat = stats[indexPath.row]
        cell.titleLabel.text = stat.name
        cell.bigCounterLabel.text = String(stat.counter)
        cell.smallCounterLabel.text = String(stat.counter)
        return cell
    }
}

1 个答案:

答案 0 :(得分:1)

在cellForRowAtIndexPath中,在按钮上设置标记。然后,在您的IBAction方法中,使用标签找出点击了哪个单元格的按钮。增加数组中的值,然后告诉该indexPath处的单元格重新加载自身。 (在cellForRowAtINdexPath中,将计数器值安装到单元格中。)

您还可以编写按钮操作,以便使用按钮的frame.origin来询问表格视图按钮所属的单元格。那更好,更不脆弱。

请参阅this thread中的答案,了解如何执行此操作。