@IBAction func topButton(sender: UIButton) {
let hitPoint = sender.convertPoint(CGPointZero, toView: self.tableView)
let hitIndex = self.tableView.indexPathForRowAtPoint(hitPoint)
let object = objectAtIndexPath(hitIndex)
object.incrementKey("count")
object.saveInBackground()
self.tableView.reloadData()
//I'm not sure how to change this code to update only the label.
NSLog("Top Index Path \(hitIndex?.row)")
sender.enabled = false
}
此代码用于更新Parse上的计数器,然后刷新tableView中的所有数据。我想知道我怎么才能更新标签。该标签与相似按钮位于同一视图上,并被称为" count"没有报价。我想要它,以便当我按下TableViewCell中的计数标签中的数字而不是所有的tableview单元格刷新时。
答案 0 :(得分:0)
在每个表格视图单元格中,您必须保留对单元格中标签或标记的引用,并了解您的单元格层次结构。
对于UIButton和UILabel,您必须这样做(如果需要,您甚至可以在标签更改中添加动画):
let cell = button.superview.superview.superview
cell.labelName.text = String(count + 1)
否则你也可以这样做,这是更清洁,但不同,你只重新加载更改的行:
self.tableView.beginUpdates()
self.tableView.reloadRowsAtIndexPaths([hitIndex], withRowAnimation:None
self.tableView.endUpdates()
答案 1 :(得分:0)
因为你在UITableViewCell中有个别按钮,我假设你可能有一个带有Swift类的xib。
class MyCell: UITableViewCell {
//Linked to the like button in xib
@IBOutlet weak var likeCountLabel: UILabel!
var likeCount = 0
//Linked to the Touch Up Inside event of like button
@IBAction func likeMe() {
//As this method is in the cell so you do not have worry about
//indexPath.
likeCount++
likeCountLabel.text = String(likeCount)
}
override func prepareForReuse() {
//
}
}
重点是您可以将代码移动到自定义UITableViewCell而不是UIViewController。这样你就很容易管理。