2010-08-29 4 views
3

qui suit anime une vue sur la partie supérieure gauche de l'écran (ipad):iphone - animer une vue d'une nouvelle largeur et la hauteur

[UIView beginAnimations:@"anim" context:nil]; 
[UIView setAnimationDuration:5]; 
[UIView setAnimationDelegate:self]; 
    someView.frame = CGRectMake(0, 0, 1024, 768); 
[UIView commitAnimations]; 

Cependant, il ne redimensionne pas la vue (pensez à un UIImageView que je veux faire exploser). Je suppose que je dois le faire avec une transformation en quelque sorte, mais tout ce que je peux comprendre est l'échelle, la rotation et la traduction (CGAffineTransformMakeRotation, CGAffineTransformMakeScale, CGAffineTransformMakeTranslation)

Comment transformer une vue en un rectangle spécifique? Je ne veux pas juste un agrandissement. J'ai besoin de l'étirer à 1024x768, indépendamment de la taille initiale.

Répondre

0

Chaque UIView contient un CoreAnimation objet (CALayer), qui est utilisé pour les animations explicites:

Débarrassez-vous de tous les -beginAnimations etc appels et il suffit d'utiliser ceci:

someView.layer.bounds = CGRectMake(0, 0, 1024, 768); 
+0

Merci pour la suggestion. J'obtiens ceci pourtant: erreur: accès au composant 'bounds' inconnu d'une propriété – sol

+0

[someView.layer setBounds: CGRectMake (0, 0, 1024, 768)]; Déplace toujours juste vers le haut à gauche. Ne pas exploser :( – sol

0

Qu'est-ce que Votre vue contentMode est-elle définie sur? Vous devriez essayer de le régler à ceci:

someView.contentMode = UIViewContentModeScaleToFill; 

Éditer: Assurez-vous de le faire avant le bloc d'animation. Vous devez le définir dans Interface Builder ou dans les méthodes de chargement de vue: loadView ou viewDidLoad.

Questions connexes