我想构建一个类似于 iPhoto '11 中的 NSCollectionView。我想将几张图片分组,并创建一个节标题。特定节的节标题始终可见,直到该节的最后一个元素可见。你可以看一下图片,看看我的意思。
编辑:我应该补充一点,内容不是图像。
提前致谢
我想构建一个类似于 iPhoto '11 中的 NSCollectionView。我想将几张图片分组,并创建一个节标题。特定节的节标题始终可见,直到该节的最后一个元素可见。你可以看一下图片,看看我的意思。
编辑:我应该补充一点,内容不是图像。
提前致谢
您可能不得不直接考虑使用 CALayers。NSCollectionView
从 CoreAnimation IIRC 获得了它的大部分魔力,看起来你可能不得不复制其中的一些。或者,您可以尝试使用嵌套的集合视图——一个包含组,然后每个组包含单个项目的另一个集合视图。
无论哪种方式,您的视图/层层次结构都将是相同的。您将拥有一个只有一列的顶级容器(因为组跨越整个宽度),然后其中的每个项目将根据项目宽度具有任意数量的列。即您的“组”集合视图项目将拉伸以填充宽度,但您在这些组中的单个项目不会。
如果您选择使用原始CALayer
方法,那么您需要查看CAConstraintLayoutManager
. 这就是提供内在魔力的东西NSCollectionView
。开始寻找这方面信息的好地方是Bill Dudney 的来自 Pragmatic Programmers 的 CoreAnimation 书。Bill 现在是 Apple 的官方平台布道者,所以我认为可以肯定地说他知道自己在说什么。
总体而言,我建议使用嵌套NSCollectionView
方法开始,并且仅在性能似乎缺乏或在某些东西工作时遇到问题时才考虑下降到原始 CoreAnimation。使用NSCollectionView
可以让您保持所有当前NSView
状态,因此工作量会减少。如果结果没问题,那么你就在家干了。如果没有,您还有其他可以尝试的东西,您可以根据自己的内心进行调整。
这是一个类似的示例: