Pour quiconque s'intéresse à la reproduction de cette, ce problème est très facile à reproduire: créer un nouveau projet et de supprimer la valeur par défaut ViewController
et de le remplacer avec un TableViewController
que vous faites glisser dans le Storyboard à partir de la Bibliothèque d'Objets. Si vous suivez ces étapes, vous verrez que rien, y compris de peaufinage Xcode de cases à cocher pour "Étendre les Bords Sous {Haut, Bas, Opaque} Bars", ainsi que l'utilisation de
self.edgesForExtendedLayout=UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars=NO;
self.automaticallyAdjustsScrollViewInsets=NO;
place de l' UITableView
- dessous de la barre d'état.
Ce problème peut être très frustrant, et je crois que c'est un bug d'Apple en fin de compte, surtout parce qu'il montre dans leur propre pré-câblé TableViewController
à partir de la bibliothèque d'objets.
Je suis en désaccord avec tout le monde qui est en train d'essayer de résoudre ce problème en utilisant toute forme de "Nombres Magiques" par exemple "utiliser un delta de 20px". Ce genre de étroitement associée de programmation n'est certainement pas ce que Apple veut que nous faisons ici.
J'ai découvert deux solutions à ce problème:
La préservation de l' TableViewController
's de la scène: Si vous souhaitez garder le TableViewController dans la table de montage séquentiel, sans manuellement en le plaçant dans un autre point de vue, vous pouvez intégrer l' TableViewController
dans une manette de Navigation (Éditeur > Incorporer Dans > manette de Navigation) et décochez la case "Affiche la Barre de Navigation. Cela résout le problème, sans aucun supplément de peaufiner nécessaire, et elle préserve également vous TableViewController de la scène dans la table de montage séquentiel
À l'aide de mise en page automatique et l'intégration de la TableView
en un autre point de vue (je crois que c'est la façon dont Apple veut nous le faire): Créer un vide ViewController
et faites glisser votre UITableView
. Ensuite, appuyez sur la touche Ctrl de votre TableView
vers la barre d'état. Comme la souris vers le bas de la barre d'état, vous verrez une mise en forme automatique de la bulle qui dit "Haut de page". Relâchez la souris et choisissez "espace Vertical". Qui dira le système de mise en page pour le placer juste en dessous de la barre d'état.
J'ai testé les deux sur une application vide et ils travaillent tous les deux. Vous devrez peut-être faire quelques extra réglages à faire travailler pour votre projet.