Question

Je suis nouveau dans le développement iPhone et je suis en train de créer un outil graphique que j'ai développé pour Silverlight.

Actuellement, j'utilise un dégradé pour "remplir" un rectangle représentant une barre dans un graphique. Est-il possible d’animer ce dégradé pour qu’il change de couleur lorsqu'un utilisateur touche la barre dans le graphique?

J'ai parcouru les guides Core Animation fournis par Apple, mais je ne peux pas voir une propriété qui cible les dégradés. Je suppose que je pourrais utiliser une transition pour atténuer deux effets, l’un avec mon dégradé de départ et l’autre avec la version touchée, mais cela impliquerait évidemment de dessiner plusieurs objets rectes pour chaque mesure avec, je suppose, des frais généraux supplémentaires.

Des idées?

Était-ce utile?

La solution

Oui, vous pouvez en effet animer des dégradés avec Core Animation.

La classe CAGradientLayer issue de la version 3.0 possède une belle API permettant de restituer les dégradés en calque et d'animer les modifications de couleur et d'arrêt de couleur.

J'ai publié un billet sur cette classe un peu plus tôt. retour, avec quelques exemples de code liés en bas.

Dans l'exemple, j'anime le dégradé en construisant une CABasicAnimation, mais vous pouvez également implicitement animer la modification en transmettant simplement un nouveau tableau de couleurs à la propriété colors du calque en dégradé. Utilisez des animations implicites, sauf si vous avez une raison de ne pas le faire.

Vérifiez-le et faites-le moi savoir si vous avez des questions concernant l'interface utilisateur que vous essayez d'animer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top