我有一个带有动态单元格的tableview控制器。其中一个单元格有一个用于切换表格的按钮,因此用户不太可能删除某些内容,并且必须主动启用编辑。
当他们按下按钮时,应该切换编辑表格和按钮文本。编辑表格有效,但按钮的文本只是闪烁,然后返回到原始文本。
@IBAction func deleteTouched(sender: UIButton) {
editing = !editing
let indexPath = NSIndexPath(forRow: 1, inSection: 0)
let cell = tableView.cellForRowAtIndexPath(indexPath) as! FieldInfoCell
cell.deleteButton.titleLabel?.text = editing ? "Done" : "Delete Estimates"
}
我首先尝试引用发件人而不是单元格中的按钮
@IBAction func deleteTouched(sender: UIButton) {
editing = !editing
sender.titleLabel?.text = editing ? "Done" : "Delete Estimates"
}
为什么启用编辑后文字会闪烁到Done
然后又回到Delete Estimates
?
答案 0 :(得分:1)
使用setTitle方法(如
)而不是设置文本按钮的标题标签button.setTitle("<#your title#>", forState: .Normal)
因为按钮需要每个州的标题,titleColor,image,backgroundImage,attributionTitle等(.Normal
,.Selected
,.Highlighted
等)。每次按钮更改其状态时,这些属性都会根据状态刷新 - 即使您设置了titleLabel.text或imageView?.image。您可以为titleLabel
和imageView