如何为特定单元格增加值?
我看到了this和this。先前我无法工作(并且“脆弱”?),前者导致功能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
}
}
答案 0 :(得分:1)
在cellForRowAtIndexPath中,在按钮上设置标记。然后,在您的IBAction方法中,使用标签找出点击了哪个单元格的按钮。增加数组中的值,然后告诉该indexPath处的单元格重新加载自身。 (在cellForRowAtINdexPath中,将计数器值安装到单元格中。)
您还可以编写按钮操作,以便使用按钮的frame.origin来询问表格视图按钮所属的单元格。那更好,更不脆弱。
请参阅this thread中的答案,了解如何执行此操作。