En mi método viewDidLoad, coloco un botón a la izquierda de la vista, fuera de la pantalla.setFrame en UIView la animación no se mueve, solo se coloca en su lugar
Luego uso de estos dos métodos para animarlo:
-(void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self showButton];
}
Y el método:
-(void) showButton {
[myButton setTitle:[self getButtonTitle] forState:UIControlStateNormal];
// animate in
[UIView beginAnimations:@"button_in" context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDone)];
[UIView setAnimationDuration:1.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationBeginsFromCurrentState:YES];
[myButton setFrame:kMyButtonFrameCenter]; // defined CGRect
[UIView commitAnimations];
}
El botón aparece inmediatamente y no se animan. Además, el selector animationDone se llama inmediatamente.
¿Por qué no anima mi botón en la pantalla?
EDIT: Esto tiene que tener algo que ver con tratar de iniciar una animación mientras que en viewDidAppear ...
curiosamente, si espero un poco, la animación funcionará. – TigerCoding