重新分配视图后,TableHeaderView不会更改

时间:2014-11-29 19:27:11

标签: uitableview swift ios8

我有两个单独的视图,我想将它用作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()
}

1 个答案:

答案 0 :(得分:0)

原因是您没有更改编辑模式,因为您没有调用super。将其添加到方法的开头:

 super.setEditing(editing, animated: animated)