J'essaie de définir un pied de page personnalisé pour ma vue de table. J'ai créé le pied de page sur un fichier nib et créé un contrôle pour cela.
class LoginTableFooter: UITableViewHeaderFooterView
Dans viewDidLoad()
j'ai écrit ce code
let footerNib = UINib(nibName: "LoginTableFooter", bundle: nil)
tableView.register(footerNib, forHeaderFooterViewReuseIdentifier: "LoginTableFooter")
Puis j'ai implémenté viewForFooterInSection
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let cell = self.tableView.dequeueReusableHeaderFooterView(withIdentifier: "LoginTableFooter")
let header = cell as! LoginTableFooter
return cell
}
viewForFooterInSection
n'a jamais été appelé. J'ai aussi essayé d'implémenter viewForHeaderInSection
mais il n'a pas été appelé non plus. Avez-vous une idée de ce qui ne va pas? Je n'ai qu'une section dans ma vue de table; Est-il possible/préférable de placer le pied de page directement sur viewDidLoad
?
Implement - déléguez & source de données pour votre tableview et définissez les deux - heightForFooterInSection
& viewForFooterInSection
tableView.delegate = self
tableView.dataSource = self
// set view for footer
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let footerView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 40))
footerView.backgroundColor = UIColor.blue
return footerView
}
// set height for footer
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 40
}
Swift 3 Utilisez directement> viewForFooterInSection
override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let footerView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 40))
footerView.backgroundColor = UIColor.red
return footerView
}
// tout d'abord, vous devez appeler le délégué et la source de données de la vue table. c'est à dire:
tableView.delegate = self
tableView.dataSource = self
// vous devez appeler ce délégué
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return "your expected footer height"
}