usted está probablemente va a tener que buscar en el uso directamente CALayers. NSCollectionView
obtiene la mayor parte de su magia de CoreAnimation IIRC, y parece que tendrías que duplicar algo de eso. Alternativamente, puede intentar usar vistas de colección anidadas, una que contenga grupos, y luego cada grupo contenga otra vista de colección de elementos individuales.
De cualquier forma, su jerarquía de vista/capa será la misma. Tendrás un contenedor de nivel superior que tiene una sola columna (ya que los grupos se extienden por todo el ancho), y cada elemento dentro de ese tendrá una cantidad de columnas basada en el ancho del artículo. es decir, los elementos de la vista de colección de su "grupo" se extenderán hasta completar el ancho, pero sus elementos individuales dentro de esos grupos no lo harán.
Si elige utilizar el enfoque CALayer
sin procesar, entonces querrá consultar CAConstraintLayoutManager
. Esto es lo que proporciona la magia dentro de NSCollectionView
. Un buen lugar para comenzar a buscar información sobre esto es Bill Dudney's CoreAnimation book from Pragmatic Programmers. Bill es ahora el evangelista de la plataforma oficial para Apple, así que creo que es seguro decir que él sabe de lo que está hablando allí.
En general, sugiero usar un enfoque anidado NSCollectionView
para empezar, y ver caer al CoreAnimation puro solo si parece que falta rendimiento, o si tiene problemas para hacer que algo funcione. El uso de NSCollectionView
le permite mantener su NSView
-ness actual en su lugar, por lo que será menos trabajo. Si resulta que está bien, entonces estás en casa & seco. Si no, tienes algo más que probar que puedes ajustar al contenido de tu corazón.
NSCollectionView no le gusta no es todo siendo la misma altura, vistas de recogida de manera anidados probablemente no funcionará a menos que usted don' Les importo que se desplacen. –