Utilisation de l'augmentation de la navigation de la barre de titre dans iOS 11
iOS Beta 11 1 utilise l'augmentation de la navigation de la barre de titre pour presque toutes les applications (elle a commencé à le faire dans iOS 10 et de la Musique app). Je me demande si Apple a une API publique pour venir en iOS 11, ou si elle restera privé pour l'instant.
Le problème est que le titre a une augmentation de la taille de police, est aligné à gauche et passer à la navigation à la barre une fois que l'utilisateur fait défiler vers le bas. J'ai attaché des écrans montrant ce comportement dans l'application Messages ici:
Bien que je ne pouvais pas trouver aucune référence dans le UINavigationController
et UINavigationBar
jusqu'à présent, peut-être que quelqu'un en sait un peu plus de détails!
- C'est dans la documentation:
prefersLargeTitles
- Big NavigationBar, de la Barre d'outils de titres sont disponibles dans iOS 11 et vous pouvez l'utiliser dans vos applications.
- Il semble qu'il a à faire dans le code. Les Grands Titres de sélecteur dans Interface Builder n'ont aucun effet.
Vous devez vous connecter pour publier un commentaire.
La seule modification à faire pour
UINavigationBar
API pour iOS 11 estprefersLargetitles
seulement. vérifier iciVous pouvez le faire à vos propres applications avec une petite modification: cochez la case "Préfère les Gros Titres" de votre barre de navigation de l'IB, ou si vous préférez le faire dans le code en utilisant
Modifier
Si vous avez besoin de modifier les attributs de texte de la grand titre, vous devez utiliser la nouvelle
largeTitleTextAttributes
bien surUINavigationBar
:Mise à jour pour Swift 4.2:
Comme
NSForegroundColorAttributeName
a été renomméNSAttributedString.Key.foregroundColor
, utilisation:largeTitleTextAttributes
que la réponse ici: stackoverflow.com/a/45020883/106703. Je suppose que cela fait sens pour la grande et régulière des titres peut être appelée de façon indépendante.NSForegroundColorAttributeName
a été renomméNSAttributedStringKey.foregroundColor
.UINavigationBar
a unprefersLargeTitles: Bool
de la propriété. Docs ici.UINavigationItem
a unlargeTitleDisplayMode: UINavigationItem.LargeTitleDisplayMode
de la propriété. Docs ici.Ces deux peut être modifié dans l'Interface Builder.
Pour activer ce comportement défini
navigationController.navigationBar.prefersLargeTitles
àtrue
. Ensuite, vous pouvez contrôler individuellement chaque vue-contrôleur dans la manette de navigation de la pile par la mise ennavigationItem.largeTitleDisplayMode
.La conception générale des lignes directrices par Apple sont que des gros titres ne devrait pas être utilisé partout (par exemple, l'application Horloge ne les utilise pas), et il est généralement préférable que seul le premier niveau de la manette de navigation utilise les grands titres. Cependant, ce ne sont que des directives générales.
Grands titres sont introduits dans Ce qui est Nouveau dans Cocoa Touch vidéo (7:37).
Cochez simplement la case "Préfère les Grands Titres" à la Barre de Navigation attribut inspecteur
Noter qu'il y a quelques bugs dans la version bêta 1 qui cause le grand titre ne s'affiche que lorsque vous les faire défiler manuellement jusqu'.
Depuis les gros titres sont disponibles depuis iOS 11 vous devez également vérifier pour la version iOS: