我想布置几行NSView。每行将以5个NSView开头,可以在任何起始5,开始或结束之间任意添加或删除视图。
1)如果没有我手动跟踪每个的大小并计算位置并放置每个位置,我怎么能让它们自行存放?我怎么说“NSView2在NSView1的右边,有10个像素的间隙”?
2)什么数据结构有意义来保存这些视图,最简单的是通过Cocoa保持位置关系?此外,我需要回到最后并通过此列表从左到右进行迭代。
答案 0 :(得分:0)
如果您的所有视图都是同质大小,请使用NSCollectionView / Item。否则,除了自己维护网格(和平铺机制)之外别无选择。
如果您的视图“流”或“换行”(即,在第2行中插入一个视图将第2行中的最后一个推到第3行的第一个位置),您必须至少从布局开始从最好的情况下的插入位置。
如果你的观点没有换行,那么它就容易多了。您只需要重做该行的布局(实际上,您希望在一行中有多少视图?如果要快速布局,那么您的设计应该重新考虑),从插入索引开始。 / p>
如果您想了解更多细节,则需要准确指定布局的预期行为。