Wie animiert man die Breite und Höhe einer UIView in Xcode?

Habe ich diese Untersicht möchte ich hinzufügen, dass zu meiner Haupt-anzeigen, machen Sie aber erweitern, die von der Herkunft. Ich Lesen Sie einige der Apple-Dokumentation, aber ich verstehe nicht wo mache ich Fehler. Ich kann animieren, den Ursprung des Rahmens, D. H., um es in Folie von wo auch immer, aber die Breite/Höhe nicht scheinen zu animieren. Code wie folgt:

[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];

Habe ich auch versucht, indem nur der setFrame Teil in der animation wie diese:

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];

Aber es funktioniert immer noch nicht!

EDIT:

Als pro die Anregungen, ich habe es verschoben, um eine block-basierte Animations-Lösung, und dies ist der exakte code:

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) {

                 }];

Welches immer noch nicht funktioniert, für einige reason. Mögliche Probleme die ich sehe sind:

  1. Ich bin laden das customView von einem nib ist speziell 310 von 150, vielleicht, dass ein problem verursacht.
  2. Ich bin nicht importieren die richtigen Rahmenbedingungen, aber da kann ich animieren, den Rahmen.Herkunft teilen diese Ansicht, ich bin nicht sicher, ob das der Fall ist...ich habe QuartzCore und Core Graphics alle importierten und Zeug.

An jedem Punkt im log ist es die richtigen Sachen: zum Beispiel, bevor die Ziel-frame-Größe ist 0, 150, und nachdem ich den Rahmen seiner 310, 150. Aber die animation funktioniert nicht!

InformationsquelleAutor der Frage Hudson Buddy | 2012-10-12

Schreibe einen Kommentar