Comment animer la largeur et la hauteur d'une UIView dans Xcode?

J'ai cette sous-vue je veux ajouter à ma vue principale, mais faire élargir à partir de l'origine. J'ai lu certains de la documentation d'Apple, mais je ne comprends pas d'où je fais erreur. Je peux animer l'origine de l'image, c'est à dire qu'il diapositive à partir de la mesure, mais la largeur/hauteur ne semble pas animer. Code comme suit:

[UIView beginAnimations:@"animateAddContentView" context:nil];
[UIView setAnimationDuration:0.4];
customView.frame= CGRectMake(self.view.frame.origin.x +5, self.view.frame.origin.y +5, 0, 150);
[self.view addSubview:customView];

customView.frame= CGRectMake(self.view.frame.origin.x +5, self.view.frame.origin.y +5, 310, 150);
[UIView commitAnimations];

J'ai aussi essayé de mettre seulement le setFrame participé à l'animation comme ceci:

customView.frame= CGRectMake(self.view.frame.origin.x +5, self.view.frame.origin.y +5, 0, 150);
[self.view addSubview:customView];
[UIView beginAnimations:@"animateAddContentView" context:nil];
[UIView setAnimationDuration:0.4];
customView.frame= CGRectMake(self.view.frame.origin.x +5, self.view.frame.origin.y +5, 310, 150);
[UIView commitAnimations];

Mais cela ne fonctionne toujours pas!

EDIT:

Que par les suggestions, j'ai déplacé dans un bloc de base de l'animation de la solution, et c'est le code exact:

NSLog(@"yourview : %@",customView);
customView.frame= CGRectMake(self.view.frame.origin.x +5, self.view.frame.origin.y +5, 0, 150);

NSLog(@"yourview : %@",customView);
[self.view addSubview:customView];
NSLog(@"yourview : %@",customView);

//   [customView setFrame:CGRectMake( 0.0f, 480.0f, customView.frame.size.width, customView.frame.size.height)];

[UIView animateWithDuration:0.4
                      delay:0
                    options:UIViewAnimationCurveEaseInOut
                 animations:^ {
                     NSLog(@"yourview : %@",customView);

                     customView.frame = CGRectMake(self.view.frame.origin.x +5, self.view.frame.origin.y +5, 310, 150);
                     NSLog(@"yourview : %@",customView);

                 }completion:^(BOOL finished) {

                 }];

Qui ne fonctionne toujours pas, pour une raison quelconque. Possibles problèmes que je rencontre sont:

  1. Je suis du chargement de cette customView à partir d'un nib qui est spécifiquement 310 150, c'est peut-être la cause du problème.
  2. Je ne suis pas de l'importation de la correcte des cadres, mais depuis je ne peux animer l'image.l'origine des pièces de ce point de vue, je ne suis pas sûr que ce soit le cas...j'ai QuartzCore et Core Graphics tous importés et d'autres choses.

À chaque point dans le journal qu'il est de donner les bonnes choses: par exemple, avant de l'image cible la taille est de 0, 150, et après j'ai mis le cadre de ses 310, 150. Mais l'animation ne fonctionne pas!

  • Vous ne pouvez pas animer la hauteur ou la largeur de vue. Vous ne pouvez animer son origine. Si vous avez besoin d'un croissant effet, à l'échelle de la transformation est la seule façon de l'atteindre. La partie la plus délicate d'une transformation d'échelle, c'est qu'il pousse toujours à partir du centre, verticalement, horizontalement ou les deux. Donc, si vous voulez qu'il sorte de goutte de partir d'un point donné, vous aurez à faire un travail là-bas.
InformationsquelleAutor Hudson Buddy | 2012-10-12