2012-09-04 71 views
2

在Flex中,有像HGroup和VGroup這樣的東西。它們允許水平和垂直對齊內容與元素之間的預先指定的間隔。卡布奇諾的垂直和水平佈局

卡布奇諾有什麼相似的東西嗎?我無法在卡布奇諾任何地方找到關於佈局的任何信息(除了自動佈局,這不是我所需要的)。

回答

2

就像Primalmotion說,沒有內置的課程來做到這一點。但是,製作自己的容器視圖並不困難:https://gist.github.com/3630322

我將離開水平佈局視圖作爲練習。

解釋這只是一點點:

在卡布奇諾運行循環每個視圖做兩件事情的結尾:「佈局子視圖」和「重繪」本身。基本上,當視圖被修改時會發生什麼(例如,添加了新的子視圖),視圖設置了一個標誌,表示它需要更新屏幕上的內容。我們可以實際控制該佈局是如何發生的通過重寫被調用的方法:

- (void)layoutSubviews; 

這是非常強大的,而且非常有效,因爲它意味着只有視圖的運行循環中「呈現」本身一次。

編輯:我應該注意,該代碼根本沒有經過測試。我相信它應該工作,除非有一些奇怪的錯字:)

+1

哇!非常感謝你!我感謝您的幫助。 –

1

在卡布奇諾中沒有這樣的東西。但是你可以用自動調整大小的掩碼來做同樣的事情。自動佈局不能實現什麼?

+0

請你提供一個例子。就像我有組件A,B和C一樣。我如何將它們以垂直順序逐一放置,間距爲5px?先謝謝你。 –

+1

好了,現在我明白了。我想你想讓A B和C在調整超級視圖的大小時保持相同的5px頁邊距。在這種情況下,您可以使用CPSplitView – primalmotion

+0

非常感謝! –