2010-06-25 45 views
1

我想佈置幾行NSViews。每行將有5個NSView開頭,可以在開始5個開始或結束之間任意添加或刪除視圖。Cocoa:以編程方式將NSView鏈接到對方以使佈局簡單?

1)如果沒有我手動追蹤每個人的大小並計算位置並放置每個人的位置,我該如何讓這些人自行擺脫?我怎麼能說「NSView2是在10像素的差距NSView1」?

2)什麼數據結構有意義持有這些視圖,並且最簡單地通過Cocoa維護位置關係?此外,我需要返回到最後,並通過此列表從左到右進行迭代。

回答

0

如果您的所有視圖的大小均勻,請使用NSCollectionView/Item。否則,你真的沒有選擇,只能自己維護網格(和平鋪機制)。

如果您的視圖爲「流動」或「換行」(即在第2行中插入一個視圖將第2行中的最後一個壓入第3行中的第一個位置),則必須從最好從最小插入位置開始。

如果您的意見不包含包裝,那就更容易了。從插入索引開始,您只需重做該行的佈局(實際上,您希望在一行中放置多少個視圖?如果佈局太多,無法快速佈局,應真正重新考慮您的設計)。

如果您想了解更多詳細信息,您需要指定佈局的預期行爲。

相關問題