2011-09-25 16 views

Respuesta

18

Sí, de hecho, hay una manera. Es como esto:

[UIView setAnimationsEnabled:NO]; 
// Animations happen here 
[UIView setAnimationsEnabled:YES]; 

... esto va a desactivar animaciones tanto UIView disparado a través de bloques y animaciones desencadenó utilizando los viejos métodos comenzar/finalizar.

Dicho esto, supongo que su biblioteca de terceros está precompilada, de lo contrario podría modificar la fuente directamente: por supuesto, es posible que esté haciendo algo extraño y animándolo de otra manera, por lo que su kilometraje puede variar con esta solución .

Esto no deshabilitará los cambios que se están realizando en los bloques de animación: simplemente sucederán de inmediato. De lo contrario, correría el riesgo de que sucedan cosas malas, ya que su API de terceros podría hacer suposiciones sobre dónde podrían haber vistas que no eran ciertas.

3

Para iOS 7 y posterior, existe esta UIView's +performWithoutAnimation:.

Tenga en cuenta que performWithoutAnimation es útil para ejecutar inmediatamente un cambio mientras está dentro de un bloque de animación, pero no va a desactivar las llamadas de animación realizados en el bloque anidado, a fin de utilizarlo por conveniencia, pero no es tan robusto como setAnimationsEnabled de la respuesta original.

Cuestiones relacionadas