2010-05-25 6 views
4

Considérons un cercle. Considérons maintenant un rayon du cercle, tiré du centre du cercle vers la droite. Imaginez maintenant que le rayon tourne autour du centre du cercle, balayant une zone pendant sa rotation. Mon problème est: Je veux utiliser les techniques d'animation de l'iPhone pour remplir la zone balayée avec une couleur différente de la zone de fond du cercle, comme le rayon tourne de 0 degrés à un nombre choisi de degrés autour du cercle. J'ai regardé à travers l'API Core Animation, KeyFrame Animations, etc. mais je ne suis pas capable de savoir comment faire. Toutes les astuces seront les bienvenues.Animation iPhone: comment animer le remplissage d'une zone?

Merci, Sandeep

Répondre

2

Découvrez CAShapeLayer. Il vous permet d'animer entre deux chemins Core Graphics, qui peuvent être aussi complexes que vous le souhaitez. Dans ce cas, vous pouvez vouloir animer entre un chemin qui définit un coin rempli mince et un coin rempli qui couvre un plus grand angle du cercle. Vous devrez peut-être utiliser un CAKeyframeAnimation pour vous assurer qu'il est animé dans le mouvement de balayage que vous désirez, et dans la direction que vous voulez.

+1

Bonjour Brad, je vous suis très reconnaissant pour votre aide. J'ai été bloqué sur ce problème pendant un certain temps. J'ai regardé la documentation sur le CAShapeLayer, et il semble que cela résoudra mon problème. Merci encore. – Sandeep

+0

J'ai extrait la classe CAShapeLayer. Il s'avère que la classe CABasicAnimation a une propriété "fromValue" et une propriété "toValue", qui peuvent être définies sur le chemin de départ et le chemin de fin, et l'ancêtre CABasicAnimation peut alors être ajouté à CAShapeLayer pour obtenir une animation qui va du chemin de départ vers le chemin de fin. Mais j'ai besoin d'utiliser un CAKeyframeAnimation - qui n'offre pas les propriétés "fromValue" et "toValue" pour le chemin "from" (départ) et le chemin "to" (fin). Ma question est: comment puis-je utiliser la classe CAShapeLayer avec la classe CAKeyframeAnimation? – Sandeep

+0

@Sandeep - CAKeyframeAnimation prend un tableau de valeurs clés à atteindre à des points spécifiques au cours de l'animation. Dans ce cas, ces valeurs sont des chemins CGPathRef, exprimés en tant qu'ID (exemple: (id) path, (id) path2, ...). –