UIView beginAnimations avec des sous-vues
J'ai une belle et facile "zoom" l'animation d'un point de vue, qui commence comme un point et anime jusqu'à la pleine taille de l'écran:
[UIView beginAnimations:néant contexte:NULL]; [UIView setAnimationBeginsFromCurrentState:YES]; [UIView setAnimationDuration:1.0]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; mavue.frame = CGRectMake(0,0,320,480); mavue.transformer = CGAffineTransformIdentity; [UIView commitAnimations];
Jusqu'ici tout va bien 🙂
Le problème est que lorsque j'ajoute des sous-vues à mavue, à ma grande surprise, ils ne suivent pas leur superview animation du schéma!?!?
Btw. les sous-vues sont actuellement ajoutées comme d'habitude dans Mavue est initWithFrame. J'ai tenté de transformer leur propriété à CGAffineTransformIdentity bu, il n'a pas aidé.
Donc, ce qui doit être fait pour permettre à un sous-vue de mavue, également, de les animer dans un joli "zoom" de la mode avec ses superview?
Merci d'avance!
/John
Êtes-vous d'ajouter le sous-vues après le réglage de la transformation dans la vue principale? Avez-vous essayé de cacher la vue principale à la place?
Oui, j'ai essayé de définir la propriété transform de MainView avant d'ajouter des sous-vues (dans le initWithFrame-méthode) pas d'aide. Ce serait de cacher les MainView faire pour aider solven ce problème?? Le problème est que les sous-vues de MainView diapositives au cours de l'animation à la place de zoom vers le haut juste comme le MainView.
Oui, j'ai essayé de définir la propriété transform de MainView avant d'ajouter des sous-vues (dans le initWithFrame-méthode) pas d'aide. Ce serait de cacher les MainView faire pour aider solven ce problème?? Le problème est que les sous-vues de MainView diapositives au cours de l'animation à la place de zoom vers le haut juste comme le MainView.
OriginalL'auteur John Lane | 2009-05-15
Vous devez vous connecter pour publier un commentaire.
J'ai juste couru dans le même problème, et la solution a été étonnamment facile. Considérant que la modification de la taille de l'image n'affecte que l'affichage en cours, pas les sous-vues (comme vous l'avez remarqué), la transformation de la propriété s'applique à la sous-vues.
Je suis en train de faire l'inverse de ce que vous faites (une sous-vue qui s'affiche à "drop" sur le haut d'une vue existante lors de l'affichage, plutôt que de zoomer à partir du centre). Ce code fonctionne pour moi:
Essayez le réglage auto.transformer CGAffineTransformMakeScale(0,0) avant le début de l'animation, et le ramener à (1,1) avant de s'engager. Ne pas modifier l'image à tout laisser à la taille que vous voulez le point de vue d'avoir une fois l'animation terminée.
Je sais que ce post est vieux, mais je viens de tomber sur le même problème. Pour obtenir la 'zoom' effet, il suffit de faire le départ CGAffineTransformMakeScale(2,2); CGAffineTransformMakeScale(0.1,0.1); CGAffineTransformMakeScale(0,0) ne fonctionne pas.
OriginalL'auteur James Clarke
Vous pouvez toujours utiliser la fonction d'auto-dimensionnement dans interface builder . De cette façon, vous pouvez spécifier la gauche/la marge de laquelle vous ne voulez pas le changer et l'axe le long duquel vous souhaitez la sous-vue de les redimensionner .
OriginalL'auteur Tapan Thaker