2010-02-14 32 views
1

如何製作獨立於分辨率的iPhone視圖控制器,它可以像瀏覽器堆棧HTML元素一樣堆疊它的子視圖?iPhone應用程序中類似HTML的佈局

這是example。在頂部可以包含1-6行文本的一個UILabel;標籤下方的兩行UIButtons;左邊的按鈕可以有短或長的標題。我希望按鈕出現在文本結束的右側垂直位置;我希望左側按鈕按照其標題的長度縮放,右側按鈕可以自動重新定位。

換句話說,當內容發生變化時,我希望這種UI最自然的行爲。

有沒有辦法告訴Interface Builder或UIKit自動實現這種行爲?

回答

1

Cocoa的佈局管理器在iPhone上不可用。唯一的自動佈局工具是UIViewautoresizingMask屬性,這不足以解決您的問題。所以必須自己編碼。

合適的地方是覆蓋視圖的layoutSubviews方法。只要視圖邊界發生變化,它就會自動調用。一些控件還有一個像樣的自動調整內容行爲,稱爲sizeToFit方法。

0

我會看看如何Silverlight handles layout,併爲iOS創建一個類似的容器集合。它看起來並不像任何人做的那樣,所以我打算爲我的下一個項目做到這一點。

基本上,有不同的容器控件以不同的方式佈置子控件。例如,有一個StackPanel,根據您可以設置的各種屬性堆疊子控件。還有一個網格,當你想要像HTML表格那樣構造東西的時候。它們設計合理,因此您可以使用各種組合的容器,以少量代碼實現相當廣泛的佈局。

相關問題