J'utilise un UITableviewcontroller
et je veux que le vue de pied de page reste toujours au bas de l'écran. Cependant, la position y
du vue de pied de page change selon le height
du tableviewcell
. Comment puis-je toujours le faire coller au bas de l'écran?
La vue du pied de page tableview
resterait toujours au bas du tableview
et défilerait toujours avec. Si vous devez rendre la vue de pied de page fixe en bas, vous ne pouvez pas utiliser un TableViewController
. Vous devrez utiliser UIViewController
, mettez votre tableView
comme sous-vue. Mettez le pied de page aussi comme une autre sous-vue et c'est fait.
Vous ne pouvez pas utiliser un UITableViewController
, mais ce n'est pas nécessaire de toute façon. Vous pouvez facilement ajouter un UITableView
à un UIViewController
normal, et utilisez simplement la disposition automatique pour ajouter un UIView
sous le UITableView
. Voici un exemple simple, en ajoutant un UIView
rouge sous le UITableView
:
import UIKit
class MyFooterTableViewController: UIViewController {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
var data = [ "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve"]
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.dataSource = self
}
@IBOutlet weak var tableView: UITableView!
}
extension MyFooterTableViewController: UITableViewDataSource {
// MARK: - Table view data source
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "TableCellTest", for: indexPath)
cell.textLabel?.text = data[indexPath.row]
cell.detailTextLabel?.text = "BANANA"
return cell
}
}
Les contraintes sur le Storyboard ressemblent à ceci:
Le résultat final est le suivant:
Le code complet du projet est ici:
https://www.dropbox.com/s/pyp42nzumquompp/TableViewFooter.zip?dl=
Un pied de page est toujours ajouté au bas de la taille du contenu. Mon approche est donc
Approche 1: (disponible pour les vues statiques et dynamiques TableView)
Ajoutez un ViewController
dans Storyboard et définissez votre vue de pied de page (ou bouton) au bas du ViewController
.
Ajoutez un ContainerView
dans la ViewController
et définissez la contrainte
Ajoutez un UITableViewController
et incorporez la vue de table dans la vue du conteneur
Approche 2: (Disponible pour les deux Dynamic TableView)
Ajoutez un ViewController
, définissez la vue de pied de page en bas, ajoutez UITableView et définissez votre disposition automatique.
Vous ne pouvez pas définir une table statique dans un UIViewController