ios 8 swift - comment ajouter un pied de page pour tableview à l'aide d'une source de données
Pour 2 jours, je suis en train d'essayer de résoudre ce problème.
Je veux juste ajouter un pied de page (cellule personnalisé) à mon tableview.
J'ai un point de vue avec quelques trucs sur elle (étiquettes, boutons) et j'ai ajouté un tableview.
Pour avoir un propre contrôleur, pour la source de données, je suis en utilisant un fichier séparé:
class MyDataSource: NSObject, UITableViewDataSource, UITableViewDelegate {
...
}
Dans mon contrôleur, j'ai :
class MyViewController: UIViewController {
@IBOutlet weak var myButton: UIButton!
var myDatasource: MyDataSource!
@IBOutlet weak var myTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
myDatasource = MyDataSource(....)
myTableView.dataSource = myDatasource
//Do any additional setup after loading the view.
}
Donc, dans MyDataSource
j'ai ajouté:
func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let footerView = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, 40))
footerView.backgroundColor = UIColor.blackColor()
return footerView
}
func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 40.0
}
Et ce morceau de code n'est pas appelée.
J'ai regardé la documentation et j'ai trouvé que ces 2 dernières méthodes font partie de UITableViewController
et non pas d'une partie de UITableViewDataSource
.
Donc, ma question est, comment y parvenir ?
Grâce.
C. C.
son délégué méthode...a vous de définir la tableview délégué du viewcontroller
tableView(tableView: UITableView, viewForFooterInSection section: Int) est une partie de UITableViewDelegate protocole et Vous devez régler la tableview délégué myDatasource. Dans votre code, vous n'avait pas donné le myTableView.délégué = myDatasource
Oui, c'était tellement stupide. Je viens de voir, je n'ai pas mis le délégué pour mon tableview. Maintenant, il fonctionne.
tableView(tableView: UITableView, viewForFooterInSection section: Int) est une partie de UITableViewDelegate protocole et Vous devez régler la tableview délégué myDatasource. Dans votre code, vous n'avait pas donné le myTableView.délégué = myDatasource
Oui, c'était tellement stupide. Je viens de voir, je n'ai pas mis le délégué pour mon tableview. Maintenant, il fonctionne.
OriginalL'auteur CC. | 2015-05-02
Vous devez vous connecter pour publier un commentaire.
Comme l'a noté, l'affichage des en-têtes et pieds de page doit mettre en œuvre la méthode de la
UITableViewDelegate
protocole. Pour le pied de page c'est:Assurez-vous que votre vue table du délégué est correctement définie.
Notez également qu'il existe une autre pratique de la vue de la table: un pied de page qui sera ajouté au-dessous de l'ensemble de la vue de la table, indépendamment de la source de données ou de déléguer la mise en œuvre. Suffit d'attribuer un
tableFooterView
.OriginalL'auteur Mundi
Swift 3 (note souligne):
OriginalL'auteur RedHotPawn.com