4 votes

Accéder aux points intérimaires pendant que UIView est animée

Je suis en train d'animer une image dans un UIImageView. Cela fonctionne très bien avec Core Animation. Maintenant, je veux attacher une extrémité d'une ligne de manière permanente au centre de ce UIImageView. Mais avec Core Animation, je n'obtiens que le point de départ et le point d'arrivée du UIImageView. Est-il possible d'accéder à des points intermédiaires pendant l'animation? Je veux étendre la fonctionnalité à de nombreux UIImageView animés, avec une ligne attachée à chacun d'eux. Je ne veux pas créer de minuteries pour surveiller toutes les animations et calculer mes propres points intermédiaires. Est-ce que quelqu'un a des suggestions? Merci!

À bientôt, Björn

4voto

Ben Zotto Points 32105

Si vous utilisez Core Animation (je ne suis pas sûr si cela fonctionne avec une animation basée uniquement sur UIView), vous devriez pouvoir obtenir une valeur instantanée particulière de votre propriété en regardant la propriété presentationLayer de la CALayer associée à votre vue. Cette propriété expose une copie en lecture seule de l'ensemble actuel des valeurs alors qu'une couche est en train d'être animée. Vous pouvez consulter cela sur un "minuteur" de liaison d'affichage et mettre à jour autre chose, etc.

J'ai du mal à visualiser exactement ce que vous essayez d'accomplir dans l'ensemble, mais cela pourrait vous aider à démarrer.

0voto

Bjoern Points 41

J'ai trouvé ce post, qui indique la bonne direction: http://dbachrach.com/blog/2008/04/instantaneous-frame-of-moving-core-animation-views/ Mais il reste un problème : cela semble fonctionner uniquement pour les CABasicAnimations, pas pour les animations standard. Existe-t-il un moyen d'accéder aux points intermédiaires lors de l'utilisation d'animations standard ([UIView beginAnimation] ...)?? Merci.

Björn

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X