2010-08-02 10 views
1

J'ai plusieurs animations basées sur UIView qui se passent la plupart du temps dans mon application. Je veux être capable de gérer toutes les rotations de périphériques, mais c'est toujours un coup de performance lorsque vous déclenchez la rotation d'un périphérique alors qu'une animation est déjà en cours.Gestion de l'animation UIView en cours lors de la rotation du périphérique

Je me demande quelle est la meilleure pratique pour les cas comme celui-ci? Dois-je sous-classer tous mes éléments UIView pour passer toutes les instances d'animation à l'image finale lorsqu'il y a une rotation de périphérique? Ou dois-je désactiver la rotation du périphérique lorsqu'il y a une animation? (Semble être une mauvaise idée.)

Dans l'attente de vos pensées. Merci. :)

Répondre

0

Vous pouvez désactiver l'animation coûteuse avant la rotation et la réactiver une fois la rotation terminée. Voir les méthodes willRotateToInterfaceOrientation:duration: et didRotateFromInterfaceOrientation: de UIViewController dans la documentation pour plus de détails.

+0

Merci. Pour continuer, quel est le moyen le plus courant de désactiver/réactiver l'animation? J'ai essayé setAnimationsEnabled de UIView, mais il supprime aussi les animations de transition de rotation. Je devrais utiliser CALayer pour gérer ce cas par cas? :) – Liz

+0

Désolé, vous ne savez pas, peut-être vous devez vraiment utiliser des animations CALayer pour cela – Vladimir