2017-09-12 4 views
0

J'ai un UITableView avec un tas de cellules personnalisées (et chaque cellule a une hauteur personnalisée et une hauteur dynamique).Pied de page UITableView non flottant

Je veux ajouter une vue de pied de page à la tableview qui sera toujours au bas de la tableviewSize.

Si la taille de contenu est plus grande que la taille de l'écran, donc en bas de la table (vous faites défiler vers le bas, comme une dernière cellule régulière).

Si la taille de contenu est inférieure à la taille de l'écran, le pied de page sera toujours en bas de l'écran et il y aura un espace entre la dernière cellule et le pied de page.

J'ai essayé d'ajouter un pied de page comme ceci:

func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { 
    let myFooterView = Bundle.main.loadNibNamed("MyFooterView", owner: self, options: nil)?.first as! MyFooterView 
    myFooterView.delegate = self 
    myFooterView.frame = CGRect(x: 0, y: 0, width: self.tableView.frame.size.width, height: 100) 
    return myFooterView 
} 

Mais le pied de page est flottais sur le bas quand je défiler. Ce n'est pas ce que je veux accomplir.

Une idée comment puis-je obtenir un pied de page non-flottant comme je le veux?

Merci! :)

+0

Ajoutez votre pied de page en tant que 'UITableViewCell' additionnel –

+0

@ReinierMelian J'y ai réfléchi. Mais comme je l'ai dit: "Si la taille du contenu est inférieure à la taille de l'écran, le pied de page sera toujours en bas de l'écran et il y aura un espace entre la dernière cellule et le pied de page.". Il ne fonctionnera pas avec une cellule supplémentaire –

Répondre

2

Ajouter une vue en tant que sous-vue à la vue de table et ajuster la position dans scrollView:didScroll:. Pour être en mesure de le faire, ajoutez la conformité à UIScrollViewDelegate à votre contrôleur de vue. Je pense qu'un UITabelViewController est automatiquement le délégué pour la vue de la table (qui est également un UIScrollView). La partie difficile est le calcul de la position en fonction de la taille du contenu, le décalage de contenu, la taille de la vue et la taille de votre pied de page.

+0

Hi. Merci pour votre réponse. Pouvez-vous expliquer un peu plus? Comment puis-je l'ajuster dans la fonction de délégué et à quelle valeur? –

+0

@ F.SO7 Voir ma mise à jour de la réponse. – dasdom

+0

Je sais comment ajouter la méthode déléguée. Mais à quelle valeur dois-je définir la position y de la sous-vue pied de page? –