¿Cómo puedo activar Core Animation en un proxy animador durante una llamada para cambiar el tamaño de SubviewsWithOldSize?

StackOverflow https://stackoverflow.com/questions/114970

  •  02-07-2019
  •  | 
  •  

Pregunta

Tengo algunos NSViews que estoy colocando en uno de dos diseños según el tamaño de mi ventana.

Estoy ajustando el diseño cuando la supervista relevante recibe el método resizeSubviewsWithOldSize.

Esto funciona, pero me gustaría animar el cambio.Así que, naturalmente, intenté llamar al proxy del animador cuando configuro los nuevos fotogramas, pero la animación no se ejecutará mientras el usuario siga arrastrando.Si suelto el mouse antes de que esté programada la animación, puedo ver el final de la animación, pero nada hasta entonces.Intenté asegurarme de que kCATransactionDisableActions estuviera configurado en NO, pero eso no ayudó.

¿Es posible iniciar una nueva animación y ejecutarla durante el cambio de tamaño?

¿Fue útil?

Solución

No creo que puedas hacer esto fácilmente porque las animaciones de CA se ejecutan mediante un temporizador y el temporizador no se activa durante los modos de ejecución de bucle que están activos mientras el usuario arrastra.

Si puedes controlar el runloop mientras el usuario arrastra, juega con los modos de runloop.Eso hará que funcione.No creo que puedas cambiarlo por parte de CA.

Otros consejos

Esto realmente no es una respuesta, pero desaconsejaría animar cualquier cosa mientras arrastra para cambiar el tamaño de una ventana.La pantalla ya se está animando (desde la ventana en movimiento); es probable que más animaciones sean visualmente confusas y extrañas.

Los efectos CoreAnimation se utilizan mejor para pasar de un estado conocido a otro; por ejemplo, cuando una ventana de preferencias cambia de tamaño para acompañar el contenido de un nuevo panel y usted conoce tanto el tamaño antiguo como el nuevo, o cuando está atenuando o desvaneciendo un objeto. (o ambos).Hacer animación mientras la ventana cambia de tamaño será visualmente confuso y hará que sea más difícil para el usuario concentrarse en obtener el tamaño de la ventana donde desea que esté.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top