Animer la barre de navigation de texte titre du changement
Dans mon application, j'ai une page vue-contrôleur qui permet à l'utilisateur de glisser entre les différentes "sections" de l'application, et en haut dans la barre de navigation-je modifier le texte du titre de la nouvelle section, l'utilisateur n'a passé à la via pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:
. Il est actuellement instantanément changer le titre du texte lorsque l'animation est terminée. Je voudrais améliorer avec un peu d'animation, un subtil en fondu effet.
J'ai d'abord essayé de mettre en œuvre [UIView animationWithDuration:...]
pour animer la modification du titre du texte, mais il n'a pas d'animation et simplement les mises à jour instantanément.
Puis je me suis demandé si ce serait possible de mettre à jour l'alpha de la valeur liquidative de la barre de titre que l'utilisateur fait défiler horizontalement en fonction de la façon dont beaucoup ils ont défilé, pour atteindre 0 alpha lors de la prochaine section est sur le point de venir à l'écran, alors je peux changer instantanément le texte alors qu'il est à 0, puis rapidement fondu dans 1 alpha. Mais je ne vois pas une méthode sur UIPageViewControllerDelegate
qui est appelé lorsque la position de défilement a mis à jour.
Si possible, au lieu de simplement en fondu, j'ai pu fondu ainsi que déplacer le titre de la position du texte dans la barre de navigation comme l'animation par défaut qui se produit lors de la navigation de retour d'un push enchaîner par un mouvement de balayage. Je voudrais glisser l'ancien titre de la section sur que l'utilisateur fait défiler et de fournir le prochain titre de la section sur l'autre côté, de sorte que lors de la transition complète le précédent titre de la section est hors de l'écran, et le nouveau est parfaitement centrée, de sorte que le remplacement se termine. Mais là encore, cela nécessite de savoir exactement dans quelle mesure l'utilisateur a fait défiler la page-vue-contrôleur.
Est-il possible de mettre en œuvre de l'souhaité animations?
Je n'ai pas, je vais étudier ça. Est-il possible d'obtenir le
UILabel
du titre existant, de sorte que je peux récupérer la valeur par défaut (elle change avec le Texte en Gras est activé), le modifier, et de le régler à l'tordu?Je pense que j'ai vu des gens utiliser les quelques fous boucle récursive pour trouver la valeur liquidative titre de la sous-vue 😛 vous pouvez essayer si vous voulez.
Merci @Zhang. Je n'ai finalement décider de créer un titre personnalisé et l'animer à l'aide de l'affichage de la page du contrôleur caché scrollView délégué de la méthode. Il fonctionne à merveille.
OriginalL'auteur Jordan H | 2014-07-03
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez animer entre les différents titre de chaînes de caractères, utilisez la commande suivante:
Vous pouvez ajuster la durée et de définir une fonction de synchronisation en fonction des besoins, bien sûr.
Il existe également d'autres types d'animation qui pourrait fonctionner dans des circonstances différentes (merci @inorganik):
Et juste une note pour les non-initiés, si mon expérience est définitif, vous aurez besoin d'ajouter le QuartzCore cadre via [projet]>[target]>Phases de construction>Lien Binaires>QuartzCore.cadre.
OriginalL'auteur Ashley Mills
Pour des raisons de commodité, Ashley Moulins solution Swift:
11/16/2016 mis à Jour pour Swift 3 (Grâce à n13)
Swift 2.x
Je tire mon chapeau à Ashley!
Merci pour le rappel 🙂
Remarqué docs sur les
type
de la propriété. "Le nom de la transition. Juridique actuelle des types de transition comprennent fondu, moveIn, les pousser et de les révéler. Par défaut fade", de sorte que letype
propriété si assis pour la fondu est inutile.Autant que je me souvienne, il n'était pas toujours
fade
lorsqu'il est utilisé avecUISplitViewControllers
. Qui ont peut-être changé avec les nouvelles Versions iOS. J'opte toujours pour une programmation défensive, si je sais exactement ce que je veux et le besoin, la demande explicite. Mais merci de prendre connaissance d'un doute inutiles déclaration de toute façon!OriginalL'auteur Frederik A. Winkelsdorf
Une solution est de créer un titre personnalisé et animer sa position à l'aide de l'affichage de la page du contrôleur caché scrollView délégué de la méthode. Comme Zhang a déclaré, le titre est tout simplement
self.navigationItem.titleView = customNavTitleLabel;
OriginalL'auteur Jordan H
Trouvé le meilleur moyen est de cette catégorie:
OriginalL'auteur MCMatan
Si vous avez besoin pour animer seul titre (non pas à l'ensemble de la barre de navigation)
De développer des titre de contrôle
Lien pour exemple
Attribuer
Animer
OriginalL'auteur Svitlana