2017-05-15 1 views
0

il semble que peu importe que je m'enregistre ou non lorsque j'utilise un en-tête et un pied de page tableView. comme: tableView.register (DeclarationCellHeaderView.self, forHeaderFooterViewReuseIdentifier: self.headerId) ma question est de savoir comment utiliser cette chose registre, nous devons faire inscrire pour les utiliserheaderView et footerView register

Répondre

0

Certainement vous devez inscrire la xib les utiliser dans UITableView tête

Ajouter à votre code ci-dessous ViewController

// inside ViewController viewDidLoad() 

override func viewDidLoad() { 

     super.viewDidLoad() 

     nibName = UINib(nibName: "headerViewCellIdentifire", bundle: nil) 
     tableView.register(nibName, forHeaderFooterViewReuseIdentifier: "headerViewCellIdentifire") 

} 

extension ViewController : UITableViewDataSource{ 

    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
     return 200 
    } 

    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 

     let view = tableView.dequeueReusableHeaderFooterView(withIdentifier: "headerViewCellIdentifire") as! TableViewHeaderFooterView 

     return view 

    } 


} 
+0

mais je créé le tableview par code non xib ou story-board, et il fonctionne sans écrire la inscrire la phrase. n'est-ce pas nécessaire lors de l'utilisation du code pour créer une cellule? – Gaga

0
  • Si vous souhaitez utiliser uniquement le titre ... Pas besoin de reg ister. Mais si vous voulez personnaliser votre vue, vous devez vous enregistrer dans viewDidLoad que vous visualisez depuis Xib. « RegisterNib: forHeaderFooterViewReuseIdentifier: »

  • Ne pas oublier de changer le nom de la classe dans xib de l'inspecteur, à « UITableViewHeaderFooterView »