2010-06-25 49 views
1

我想布置几行NSViews。每行将有5个NSView开头,可以在开始5个开始或结束之间任意添加或删除视图。Cocoa:以编程方式将NSView链接到对方以使布局简单?

1)如果没有我手动追踪每个人的大小并计算位置并放置每个人的位置,我该如何让这些人自行摆脱?我怎么能说“NSView2是在10像素的差距NSView1”?

2)什么数据结构有意义持有这些视图,并且最简单地通过Cocoa维护位置关系?此外,我需要返回到最后,并通过此列表从左到右进行迭代。

回答

0

如果您的所有视图的大小均匀,请使用NSCollectionView/Item。否则,你真的没有选择,只能自己维护网格(和平铺机制)。

如果您的视图为“流动”或“换行”(即在第2行中插入一个视图将第2行中的最后一个压入第3行中的第一个位置),则必须从最好从最小插入位置开始。

如果您的意见不包含包装,那就更容易了。从插入索引开始,您只需重做该行的布局(实际上,您希望在一行中放置多少个视图?如果布局太多,无法快速布局,应真正重新考虑您的设计)。

如果您想了解更多详细信息,您需要指定布局的预期行为。

相关问题