Ancrer un UIButton en bas de la vue d'UITableViewController

J'ai l'exigence suivante. Lorsque la vue UITableViewController est affichée, il existe un nombre variable de lignes. Sous les lignes, un button devrait être affiché.

Lorsque le nombre de lignes est petit, le button doit être ancré au bas de la vue.

Lorsque le nombre de lignes est plus important, le button Supprimer doit être placé immédiatement après la dernière ligne.

En d'autres termes:

entrez la description de l'image ici

Et pas:

entrez la description de l'image ici

Ma meilleure tentative à ce jour a consisté à définir une tableFooterView et à essayer de mettre à jour sa hauteur en utilisant le contentSize de UITableView , mais je rencontre toutes sortes de problèmes. Je pourrais continuer dans cette voie et requestr de l'aide, mais je veux d'abord savoir si quelqu'un a des solutions alternatives (meilleures).

Le résultat doit bien se jouer avec une barre d'état de taille double (lors d'un appel par exemple) et je cible iOS 6.0. Je n'utilise pas de constructor d'interface.

Une solution possible pour atteindre cet effet pourrait devoir utiliser deux solutions différentes.

  1. Si le nombre de lignes signifie que le button sera hors de l'écran, utilisez le pied de page comme vous l'avez fait.

  2. Si le nombre de lignes signifie que le button ne sera pas hors écran alors

    1. Ajouter le button à la tableVoir
    2. Implémenter - (void)scrollViewDidScroll:(UIScrollView *)scrollView et mettre à jour l'image du button à décaler du bas.

Le décalage du bas pourrait suivre une logique comme celle-ci

  1. yOffset = CGRectGetHeight (tableView.frame) – (CGRectGetHeight (button.frame) + somePadding)
  2. yOffset + = tableView.contentOffset.y

Cela signifierait que le button bouge toujours de haut en bas avec le défilement mais vous n'avez pas à jouer avec le pied de page

Gardez à la fois la vue de la table et un button à l'intérieur de la vue déroulante. Gardez le button au bas de la scrollview. Pour que le défilement fonctionne correctement, vous pouvez définir la propriété scrollEnabled des vues de défilement. Pour plus de détails sur cette vérification

Faire défiler un UITableView dans un UIScrollView

MODIFIER:

yourView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;

Vérifiez la réponse acceptée pour cette question pour plus de détails sur l'implémentation d'entretoises et de ressorts à l'aide du code: UIView autoresizingMask – Interface Builder to Code – Créer par programme des entretoises et des ressorts – Swift ou Objective-C