编辑表时按钮文本不会保持更改

时间:2016-01-11 15:38:26

标签: swift uitableview editing

我有一个带有动态单元格的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

1 个答案:

答案 0 :(得分:1)

使用setTitle方法(如

)而不是设置文本按钮的标题标签
button.setTitle("<#your title#>", forState: .Normal)

因为按钮需要每个州的标题,titleColor,image,backgroundImage,attributionTitle等(.Normal.Selected.Highlighted等)。每次按钮更改其状态时,这些属性都会根据状态刷新 - 即使您设置了titleLabel.text或imageView?.image。您可以为titleLabelimageView

设置字体,图层属性