Pregunta

I tiene un NSView capa de alojamiento (-isFlipped = SÍ) con tres subvistas capa de alojamiento. Los subvistas son un encabezado, un área de contenido, y un pie de página. La cabecera tiene un triángulo desplegable que colapsar la vista de contenido y simplemente mostrar la cabecera y el pie pegados entre sí.

Me puede lograr esto con bastante facilidad con Core Animation, pero hay un problema extraño sucede cuando cambio el tamaño de la vista. Si cambio el tamaño de la vista horizontal, quiero los tres subvistas para que coincida con el nuevo ancho. Si puedo cambiar el tamaño de forma vertical, quiero que los subvistas a permanecer donde están (es decir, el borde inferior de la vista debe ser capaz de moverse sin afectar a la posición de la vista secundaria (excepto el recorte, por supuesto). La razón de esto es que necesito a un colapso el tamaño de la vista cuando la contentView se desvaneció.

Lo que está sucediendo es que los tres subvistas están siendo empujados hacia arriba por encima de la parte superior de la vista cuando se cambia la altura ... y luego introducidos en su lugar cuando se cambia la horizontal. Tiene algo que ver con la combinación de ambos la vista y los subvistas, porque si los subvistas se colocan directamente en la ventana, se comportan adecuadamente. Además, he intentado añadir un botón a la vista y se comportaba normalmente.

Yo era capaz de conseguir el botón con el mal comportamiento de la misma manera por lo que es capa respaldado también ... así que creo que la capa de refuerzo tiene algo que ver con ello.

Es como las capas de soporte se queda pegada a la vista padre, ya que cambia el tamaño y ser empujado hacia arriba a pesar de que las coordenadas se da la vuelta.

¿Alguna idea?

¿Fue útil?

Solución

Los puntos de vista de alojamiento de capa no deberían tener subvistas. Ver - (void) setWantsLayer: documentación de referencia de clase NSView:

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html%23//apple_ref/occ/ INSTM / NSView / setWantsLayer :

vista raíz tal vez debería ser una capa de vista en lugar de una capa de alojamiento respaldado?

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