簡體   English   中英

如何根據子視圖的高度設置堆棧視圖的高度?

[英]How to set stack view height according to its subviews height?

我需要滾動六種不同類型的視圖,每個視圖具有不同的大小,視圖之一是:關於我。 在“關於我”中,我必須顯示標題(即“關於我”)及其下方的文本,標簽高度應根據文本高度而定。

到現在為止,我將此要求設計為:

根視圖-堆棧視圖*具有固定高度的項目1 *具有固定高度的項目2 * UIView與我有關:-標簽為標題-標簽為文本,最大行數設置為0,寬度等於容器寬度。

問題是:我無法設置大約UIView的固定高度,並且不會根據標簽文本調整大小。 請提出適當的解決方案。

嗨,您可以像這樣獲取stackView的固有高度:

let size = stackView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)

我知道我有點遲才回復此消息。 但是我遇到了同樣的問題,並且發現了這段代碼。 以為任何人尋找這個可能有用:)

我認為您沒有明確聲明問題。 我要指出的第一件事是UIStackView可以通過其排列的子視圖的大小來推斷其大小。 但是,您必須首先確認添加到子視圖的約束是正確的。 因此,如果您沒有獲得想要的調整大小效果,那么您肯定會丟失一些東西。 也許您沒有做出合理的約束。

為了澄清您的情況,最好將一些有關約束的屏幕截圖添加到“關於我”視圖中。 順便說一句, UIStackView的軸是UIStackView

我都不知道這些。 因此,我必須為我做一些假設,以進一步說明您的問題。

  • UIStackView的軸為UILayoutConstraintAxisVertical
  • 而且您的UIStackView (或您所有的內容)具有固定的寬度。

在上述條件下,定義其高度由其文本決定的觀點將很簡單。 因為UILabel不必具有固定的大小。 您只需要指定其寬度(或指定其前導和尾隨其超級視圖),它的高度將根據其字體和內容自動計算。

您的關於我的視圖有兩個標簽,因此您應該
確保這些事情:

  • 標題標簽:超級視圖的頂部,頂部,尾部約束。 以及字幕標簽底部的間隙(無論您叫什么)。
  • 字幕標簽:超級視圖的開頭,結尾,底部,約束。 以及標題標簽的頂部間隙。

暫無
暫無

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

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