Acabo de actualizar mi iPhone 4 de iOS 4.2.1 a 4.3.2, y a XCode 4.0.2, y encuentro algunos problemas extraños con las animaciones uiview. Cuando por primera vez lanzar mi aplicación, código como este se ejecuta a la perfección:Las animaciones UIView dejan de funcionar después de cerrar Modal View
[UIView beginAnimations:@"fadeAlphaIn" context:nil];
[UIView setAnimationDuration:0.5f];
viewClue.alpha = 1.0f;
[UIView commitAnimations];
Pero entonces, después de despedir a una presentación y luego despedir a un punto de vista modal por el método estándar:
[self presentModalViewController:more animated:YES];
y
[self dismissModalViewControllerAnimated:YES];
la primera animación ya no funciona. En lugar de desvanecerse, por ejemplo, la vista viewClue simplemente salta de alfa = 0 a alpha = 1. De manera similar, otras animaciones que alteran la propiedad de marcos de otras vistas solo obligan al marco a saltar del valor inicial al final sin animación. Estas animaciones funcionaron bien antes de que se presentara y descartara la vista modal.
Entiendo que otros han tenido problemas de animación con la actualización a iOS 4.3.2, pero la forma en que la vista modal altera la animación parece muy extraña. ¿Alguien más ha experimentado este problema? ¿Alguna idea sobre una solución? Estoy pensando en simplemente agregar la vista modal como una subvista y animarla a medida que se oculta y aparece, pero usar el método de vista modal estándar sería mucho más preferido.
Gracias por su ayuda,
James
EDIT: algo más de código que muestra cómo el mapa de la aplicación está animado
-(void) viewMapfunc
{
AudioServicesPlaySystemSound(soundID);
if(mapvisible){
[UIView animateWithDuration:0.5
delay:0.1
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
map.frame = CGRectMake(0, 350, 320, 27);
mapscroll.frame = CGRectMake(0, 27, 320, 0);
}
completion:nil];
mapvisible = NO;
viewMapLabel.text = @"View Map";
}else {
[UIView animateWithDuration:0.5
delay:0.1
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
map.frame = CGRectMake(0, 50, 320, 300);
mapscroll.frame = CGRectMake(0, 27, 320, 300);
}
completion:nil];
mapvisible = YES;
viewMapLabel.text = @"Hide Map";
}
}
Asegúrese de que tiene este problema en el dispositivo w/o un depurador asociado. Me di cuenta de donde se encuentra ahora el comportamiento extraño animaciones durante la depuración en el simulador –