[英]Cocoa-Touch: How to do layouting
我有一個視圖( UIScrollView
),它加載一些數據,並在各種子視圖中顯示它的各種內容。 所以我有大約10個子視圖( UIImageView, UILabel
),我需要以編程方式放置它們,考慮到它們不可預測的內容(即根據文本屬性, UILabel
的高度/寬度不同)。
從我讀過的內容來看,Cocoa-touch沒有布局框架。
做這個的最好方式是什么?
據我所知,我應該將內容放在視圖中,然后在調用sizeToFit
方法后開始根據幀來計算坐標。
這種方法非常容易出錯。 真的沒有別的辦法嗎?
你是對的,沒有自動布局管理器。 對UIScrollView
子類化並覆蓋layoutSubviews
可能是實現自定義算法的正確方法。 然后,您可以調用setNeedsLayout
來進行布局。
Cocoa中的布局通常使用自動調整大小(使用autoresizingMask
)來完成。 您可以從一些硬編碼的初始大小開始,例如200x200; 將您的子視圖放在此視圖上並相應地設置自動調整標記。 然后可以將此視圖的大小自由調整為其實際大小,由其父視圖/窗口確定。 無論您使用Interface Builder還是以編程方式執行此過程,過程都是相同的。
如果需要垂直堆棧視圖,可以使用表格視圖。
如果你想要更復雜的布局,你需要自己實現它,通過覆蓋layoutSubviews
。
您可以使用Interface Builder創建視圖,然后將元素拖放到其中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.