5

Actualmente estoy dando los toques finales a un proyecto.Animar setHidden: en NSView mediante enlaces de cacao

Mucho (si no todos) de la lógica de UI actualmente se basa en uniones de cacao. Algunos de los elementos de la interfaz de usuario (etiquetas, botones, etc.) tienen definidos sus enlaces "Ocultos". Cuando se activan ciertos eventos, se alterna la visibilidad de estos elementos.

Estoy tratando de animar el cambio de visibilidad (animando la opacidad y tal vez incluso la escala). Esto podría lograrse fácilmente de varias maneras, ya sea estableciendo las propiedades de capa relevantes, agregando las animaciones a la capa, etc. Sin embargo, dado que estoy tratando de confiar totalmente en el comportamiento de los enlaces, "no puedo" realmente hacer esto directamente

me trataron de una aplicación utilizando acciones de capa, mediante la definición de las acciones de las teclas kCAOnOrderIn y kCAOnOrderOut en los elementos pertinentes, pero realmente no funcionó, como el setHidden: es más probable que se dispare en el NSView en lugar de la CALayer - - que tiene sentido

Entonces, mi pregunta es: ¿cómo animarías setHidden: en un NSView, cuando setHidden: está siendo invocado por Cocoa Bindings.

Gracias.

Respuesta

0

Animar setHidden no tendrá ningún efecto visual ya que está activado o desactivado. Si desea animar la visibilidad, use setAlpha (o setOpacity en la capa) en su lugar. Estos toman un valor entre 0.0 y 1.0. Si necesita establecer el indicador oculto por el bien de la información de estado, llame al -performSelector:withObject:afterDelay pasándole un selector que establece el valor oculto a lo que necesite que sea después de que haya completado la animación. De forma alternativa, puede configurar un delegado para que se vuelva a llamar a la animación explícita cuando finalice la animación y luego llamar a setHidden.

+0

'setHidden:' en un CALayer * * es animatable. La acción predeterminada para las teclas de entrada/salida de orden realmente usa una CATransición que causa la opacidad de las capas para animar. – phluid

+0

Sí. Oculto es animable en el sentido de que puede cambiar los valores, sin embargo, solo hay dos valores posibles. Core Animation interpola los valores intermedios. Con oculto, es SÍ o NO. Pero lo que parece que quieres hacer es activar automáticamente una animación de desvanecimiento cuando se invoca setHidden. ¿Es eso correcto? Si es así, no creo que puedas hacer eso solo con un enlace. Probablemente deberás escribir código. Puede tratar de vincularse a la propiedad alfa y configurarlo en 0 o 1. Parece que puede darle deseo que está buscando, pero no estoy seguro de cómo tiene las cosas conectadas. –

0

Sugeriría echar un vistazo a NSViewAnimation. Toma cualquier NSView y puede animar el cuadro, el tamaño o la visibilidad.

2

Esto se desvanecerá una NSView ...

[[someView animator] setAlphaValue:0.0f];