2010-01-20 17 views

回答

0

事情似乎使用自己的自定义视图。

如果集合中的所有项目大小都相同,则可以使用NSCollectionView和具有自定义背景的NSCollectionViewItem子类轻松完成此操作。因为它们的高度是可变的,但是你必须自己推出。

本质上,你需要一个容器视图,其工作是布置子视图。你想要一个可以处理控件集合的自定义子视图。您将在容器视图中为每个项目实例化一个新的“原型”视图。容器视图将在任何重大更改(添加/减少,子视图大小更改,窗口大小调整...)中,“平铺”视图。

最简单的拼贴只是滚动浏览每个视图,将它排列到它的高度达到给定的宽度,然后排列下一个视图...然而,对于大型集合,您会想要考虑性能。在这种情况下,缓存的各种方法在通常的Cocoa频道的这里和那里都有描述。

我在我的一个产品中做了这件事 - 从2004年开始,通过缓存“条目”的预绘制表示,使用仅用于正在编辑的条目的“实际”条目视图,实现了稳定的性能改进用户。换句话说,获得基础知识的工作很容易,但从大型集合中挤出好的表现会变得更加困难。 :-)

相关问题