我有两个单独的视图,我想将它用作tableHeaderView
(相应地用于普通和编辑模式)。
第一次调用setEditing
时,会将tableHeaderView
设置为第一个视图。在tableHeaderView
完全没有变化之后,即使您将其设置为nil,它也会继续显示第一个分配的视图。我在分配之前和之后尝试了reloadData
,但它没有帮助。
class EditVC: UITableViewController {
lazy var viewTableHeaderView:ViewTableHeaderView = NSBundle.mainBundle().loadNibNamed("ViewTableHeaderView", owner: self, options: nil)[0] as ViewTableHeaderView
lazy var editTableHeaderView:EditTableHeaderView = NSBundle.mainBundle().loadNibNamed("EditTableHeaderView", owner: self, options: nil)[0] as EditTableHeaderView
override func setEditing(editing: Bool, animated: Bool) {
self.tableView.beginUpdates()
if editing{
self.tableView.tableHeaderView = self.editTableHeaderView
}else{
self.tableView.tableHeaderView = self.viewTableHeaderView
self.tableView.endUpdates()
}
答案 0 :(得分:0)
原因是您没有更改编辑模式,因为您没有调用super。将其添加到方法的开头:
super.setEditing(editing, animated: animated)