簡體   English   中英

Cocoa-Touch:如何進行布局

[英]Cocoa-Touch: How to do layouting

我有一個視圖( UIScrollView ),它加載一些數據,並在各種子視圖中顯示它的各種內容。 所以我有大約10個子視圖( UIImageView, UILabel ),我需要以編程方式放置它們,考慮到它們不可預測的內容(即根據文本屬性, UILabel的高度/寬度不同)。

從我讀過的內容來看,Cocoa-touch沒有布局框架。

做這個的最好方式是什么?

據我所知,我應該將內容放在視圖中,然后在調用sizeToFit方法后開始根據幀來計算坐標。

這種方法非常容易出錯。 真的沒有別的辦法嗎?

你是對的,沒有自動布局管理器。 UIScrollView子類化並覆蓋layoutSubviews可能是實現自定義算法的正確方法。 然后,您可以調用setNeedsLayout來進行布局。

Cocoa中的布局通常使用自動調整大小(使用autoresizingMask )來完成。 您可以從一些硬編碼的初始大小開始,例如200x200; 將您的子視圖放在此視圖上並相應地設置自動調整標記。 然后可以將此視圖的大小自由調整為其實際大小,由其父視圖/窗口確定。 無論您使用Interface Builder還是以編程方式執行此過程,過程都是相同的。

如果需要垂直堆棧視圖,可以使用表格視圖。

如果你想要更復雜的布局,你需要自己實現它,通過覆蓋layoutSubviews

我不知道任何自動布局管理器等。

因此,我認為您必須計算所需的位置和大小,並手動更新子視圖的frame

編輯:我發現這個問題 Brad Larson指出了一個自定義布局管理器的例子。 HTH

您可以使用Interface Builder創建視圖,然后將元素拖放到其中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM