簡體   English   中英

UIStackView內部的UIView動態高度

[英]UIView dynamic height inside UIStackView

我目前有一個堆棧視圖設置,其中包含許多不同的對象,並且我正在嘗試向其中添加視圖。

該視圖將在運行時以編程方式在其中添加動態數量的標簽。

將視圖放入堆棧視圖時,會遇到約束錯誤,這些錯誤通過添加高度約束而得到解決。

但是,我最初不知道視圖的高度,因此無法對此進行限制。

有什么方法可以根據其內容大小在StackView自動調整大小內包含UIView嗎? 我以為這是自動的,但是當我不設置高度限制時,視圖不會顯示

您不必將內容視圖放入stackview內以向其中添加元素,您只需將只具有(前導,尾隨,頂部)約束的stackview掛鈎即可

然后添加元素

stack.addArrangedSubview(view)

最重要的是,您添加的元素必須具有固有的content-size,如label和button,如果沒有,則添加一個高度

someView.heightAnchor.constraint(equalToConstant:<#setValue#>).isActive = true

分配設置為填充

在UIStackView中添加具有動態高度的自定義UIView的步驟

  1. 將UIStackView添加到IB中的超級視圖,並添加頂部,底部,前導和尾隨約束。
  2. 如果IB為約束拋出任何錯誤,只需將UIStackView的固有大小設置為PlaceHolder並帶有一些虛擬大小。 這將固定UIStackView在IB中的位置,但是會在運行時根據自動布局自動更改。
  3. 創建如下的CustomUIView實例

    Bundle.main.loadNibNamed(nibName, owner: self, options: nil).first as! CustomUIView

  4. 如下所示將UIView添加到UIStackView。

    stackView.addArrangedSubview(customView)

  5. 這會將自定義UIView添加到UIStackView,並將根據xib內容和約束進行擴展/折疊。 只要確保您的xib按照自動布局指南正確約束即可。

暫無
暫無

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

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