我正在构建一个待办事项列表应用程序,其中我使用我的部分标题来显示有关流程的信息。通过字符串操作,我在其中显示了有关待办事项的一些值。但是要始终保持最新状态,我只知道reloadData()
命令。但是尝试自动删除行确实很糟糕。
所以我的问题是如何以一种干净的方式而不是通过reloadData()
来更新标题文本。
在这里您将待办事项标记为已完成:
alert.addAction(UIAlertAction(title: "Done", style: .default, handler: { (action) in
if indexPath.section == 0 {
self.goals.remove(at: indexPath.row)
} else {
self.goalsB.remove(at: indexPath.row)
}
self.counter+=1
self.saveDefaults()
tableView.deleteRows(at: [indexPath], with: .automatic)
}))
这是设置我的标题的地方:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let label = UILabel()
label.textColor = UIColor.white
label.backgroundColor = section == 0 ? UIColor(red: 41 / 255.0, green: 76 / 255.0, blue: 103 / 255.0, alpha: 1.0) : UIColor(red: 235 / 255.0, green: 108 / 255.0, blue: 33 / 255.0, alpha: 0.5)
if section == 0 {
label.text = " \(counter) goals completed / \(goals.count) outstanding"
}
return label
}
答案 0 :(得分:1)
如果您事先知道必须更新哪个特定节的标题,则可以使用TableView.reloadSection()方法。
答案 1 :(得分:0)
您可以在UIView
上使用过渡API。
UIView.transition(with: label,
duration: 0.25,
options: .transitionCrossDissolve,
animations: { [weak self] in
self?.label.text = "\(counter) goals completed / \(goals.count) outstanding"
}, completion: nil)