iOS 11 titre de la barre de navigation ne s'effondre pas
La Pomme gars dans la Ce qui est nouveau dans Cocoa Touch WWDC vidéo dit que le nouveau grand titre de la barre de navigation comme par magie crochet au niveau supérieur dans le défilement de l'affichage de la vision sous-jacente de contrôleur et de développer/réduire automatiquement pendant le défilement en haut et en bas. (Et par "magie", il signifiait probablement qu'ils n'ont pas à monkey patch de cette fonctionnalité dans le déjà gênant UINavigationController
-UINavigationBar
-UINavigationitem
Api dans un utilisable, donc ils ont dû recourir à d'accrochage dans certains de manière heuristique choisi de défilement de la vue derrière les scènes)
Même si je m'attendais à que ce "automatique" de développer/réduire les ne fonctionnent pas si je dévier le moindre à partir de la base UINavigationController
+ UITableView
/UICollectionView
de l'installation, il semble que, même dans ce cas plus simple qu'il ne fonctionne pas comme prévu.
Voici ce que j'ai:
Un UITabBarController
qui contient un UINavigationController
, qui contient un UIViewController
, qui a un UITableView
comme son view
. Appuyant sur la première cellule de la table de pousser un second point de vue du contrôleur sur la pile de navigation:
Pas de code, juste la table de montage séquentiel.
J'ai vérifié "Préfère les grands titres" pour la barre de navigation pour activer les gros titres. Maintenant, si je exécuter l'application, puis faites défiler vers le haut/bas sur l'écran du tableau, la barre de navigation reste le même - de grande taille; elle ne s'effondre pas:
Cependant, j'ai constaté que si j'ai mis le second point de vue du contrôleur de la navigation de l'élément à utiliser la petite barre de navigation (par la mise en "Grand Titre" à la valeur "Jamais"), alors si j'ai ouvert cette page et revenez en arrière, le interactive effondrement comme par magie commence à travailler sur la première page:
Ai-je raté quelque chose ici, ou est cette fonction ne fonctionne pas correctement? Voici l'exemple de projet, je suis à l'aide d': https://github.com/tzahola/iOS-11-Large-Title-Navigation-Bar
Et par la manière, je suis en utilisant le officiellement publié iOS 11, de ne pas les bêtas.
2017-09-23 mise à Jour: j'ai envoyé un rapport de bug à Apple, et a ouvert un billet sur openradar.moi: http://www.openradar.me/radar?id=5017601935671296
- Je suis en train de vivre exactement la même chose. Mon petit doigt me dit que c'est un bug 😢
- de vérifier ma réponse ci-dessous!
- merci. Je vais lui donner une autre chance ce soir
- La Science, je ne peux pas commenter, je vais partager la réponse que j'ai posté stackoverflow.com/a/47493375/8385022
Vous devez vous connecter pour publier un commentaire.
De bonnes nouvelles! J'ai juste compris que si j'ai mis "Gros Titres" à "Jamais" sur le storyboard, puis le configurer via le code, alors cela fonctionne:
Semble que Apple a oublié de traiter le cas lorsque l'élément de navigation a son
largeTitleDisplayMode
définie via l'Interface Builder.Jusqu'à ce qu'ils résoudre ce problème, laissez "Gros Titres" comme "Jamais" sur des story-boards, et ce, via le code en
viewDidLoad
.Vous avez juste besoin de le faire à la première vue-contrôleur. Ultérieure de vue des contrôleurs de l'honneur de la valeur dans la table de montage séquentiel.
Si il n'y a aucun autre point de vue, en plus de tableView, assurez-vous également tableView est sur le haut de ce point de vue(s), juste en-dessous de la Zone de Sécurité:
Ou au lieu de changer quoi que ce soit dans le storyboard, faites ceci:
N'importe quelle langue!
C'est parce que de gros titres sur l'élément de navigation décide ou non de s'effondrer sur la base d'un grand titre de comportement sur l'écran précédent élément de navigation de titre.
Puisque je ne peux pas commenter, je vais partager ici la réponse que j'ai posté
https://stackoverflow.com/a/47493375/8385022
J'ai trouvé une solution sur ce site
en gros, si la tableView (ou d'un élément qui a de défilement)n'est pas la première vue de votre point de vue de la hiérarchie, le grand titre ne parvient pas à masquer automatiquement.
Exemple qui ne fonctionne PAS
Exemple de travail
https://markusbodner.com/2017/10/08/fix-large-navigation-bar-title-not-hiding-on-scroll-in-ios-11/
Que j'ai ajouté sur le point de vue willAppear:
@TamasZahola @mohamede1945
Les gars, j'ai eu le même problème. J'ai été en mesure de résoudre ce problème en ajoutant l'extrait de code suivant sur mon premier-Vue-Contrôleur de manette de Navigation