web-dev-qa-db-fra.com

Comment puis-je faire en sorte que la vue de pied reste toujours en bas dans UITableViewController?

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?

11
Isha Balla

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.

6
MeghaJain

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:

constraints

Le résultat final est le suivant:

animated

Le code complet du projet est ici:

https://www.dropbox.com/s/pyp42nzumquompp/TableViewFooter.zip?dl=

1
David S.

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

0
Ankur Lahiry