He conectado los dos métodos a continuación para separar botones en mi interfaz de usuario, pero he notado que después de presionar el botón "VERSIÓN 1" no podía presionar el botón hasta que la duración de la animación dentro del método había terminado. Según entendí, la animación usa su propio hilo para no bloquear la aplicación principal.does animateWithDuration: animations: block main thread?
// VERSION 1
-(IBAction)fadeUsingBlock {
NSLog(@"V1: Clicked ...");
[myLabel setAlpha:1.0];
[UIView animateWithDuration:1.5 animations:^{
[myLabel setAlpha:0.0];
}];
}
La versión más viejo estilo (abajo) sí permite el botón para ser reprimida antes de que termine el temporizador de animación, sólo tiene que reiniciar el temporizador para empezar de nuevo. Si ambos funcionan igual, ¿me estoy perdiendo algo o ha habido un cambio en la operación entre 3.2 y 4?
// VERSION 2
-(IBAction)fadeUsingOld {
NSLog(@"V2: Clicked ...");
[myLabel setAlpha:1.0];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[myLabel setAlpha:0.0];
[UIView commitAnimations];
}
Saludos Gary
Ah que tiene sentido, me había perdido esa opción en la documentación, voy a mirar hacia arriba. Muchas gracias, muy apreciado. – fuzzygoat
Gracias por esto. Maldita sea, esto me estaba molestando. De hecho, es bastante molesto que no esté activado de manera predeterminada, porque dice que bloquea la interacción con la vista que se anima, ¡pero de hecho bloquea toda la interfaz de usuario! – runmad
Hombre, no sería bueno si esto se solucionara en el próximo iOS 5.0 ... –