2010-04-10 3 views
0

Sur l'iPhone, lorsque vous ajoutez un sous-calque à un calque de vue visible, en utilisant -addSublayer: ou -removeFromSuperlayer, cette sous-couche ne doit pas apparaître ou disparaître de manière animée (par ex. fondu ou fondu progressivement)? Mon programme anime les calques (pas les vues). Lorsque je change une propriété d'une couche comme la position ou le contenu de l'image, alors le changement s'anime (couches de couches autour de la couche parent, la couche s'estompe de l'ancienne image à la nouvelle image). . Toutefois, lorsque j'ajoute ou supprime une sous-couche, le changement se produit instantanément; il n'y a pas d'animation. En lisant les références, il est dit que si la couche est visible, la sous-couche devrait s'animer lors de l'addition ou de la suppression.animation ajouter/supprimer des calques sur l'iPhone

Qu'est-ce que je fais mal? Quelqu'un a-t-il eu un problème similaire et a-t-il trouvé une solution?

+0

L'ajout de sous-couches n'est pas animé par défaut. Où avez-vous lu que le sous-calque doit animer lorsqu'il est ajouté ou supprimé? – Tom

Répondre

3

Si vous souhaitez un fondu vous pouvez utiliser la CATransition suivante:

CATransition* transition = [CATransition animation]; 
transition.delegate = nil; 
transition.duration = 0.3; 
transition.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseOut]; 
transition.type = kCATransitionFade; 
[theLayer addAnimation: transition forKey: nil]; 

Assurez-vous de #import <QuartzCore/QuartzCore.h> et lier le cadre. Appelez ce bloc juste avant d'ajouter ou de supprimer les sous-couches.