簡體   English   中英

調整UIStackView控件內的UIView高度

[英]Adjusting UIView Height Inside UIStackView Control

我在iOS 9 SDK中使用UIStackView。 stackview的高度為44點。 我在StackView中有一個UILabel和UIView,如下所示:

在此輸入圖像描述

現在,我想讓綠色視圖遠小於44 ..就像20一樣。我怎么能這樣做?

更新:沒有UIStackView我得到了破壞限制:

[GT.BubbleView:0x14536610]   (Names: '|':UITableViewCellContentView:0x14536fd0 )>",
    "<NSLayoutConstraint:0x146b7300 GT.BubbleView:0x14536610.trailing == UITableViewCellContentView:0x14536fd0.trailingMargin>",
    "<NSLayoutConstraint:0x146c4000 'UIView-Encapsulated-Layout-Width' H:[UITableViewCellContentView:0x14536fd0(286)]>"

  1. 首先,您需要在cell上添加UIStackView 在此輸入圖像描述

  2. 需要為UIStackView添加約束 在此輸入圖像描述

  3. 調整您的UIStackView 在此輸入圖像描述

  4. UILabel拖放到您的UIStackView 在此輸入圖像描述

  5. 然后將UIView拖放到您的UIStackView 在此輸入圖像描述

  6. green-UIView添加為pink UIView 在此輸入圖像描述

  7. 現在,您可以向green-UIView添加幾個約束 在此輸入圖像描述 在此輸入圖像描述

  8. 現在您可以在模擬器或設備上運行app 在此輸入圖像描述 在此輸入圖像描述

    請注意 ,我沒有為UILabel添加任何約束。

如果您想要達到如下所示的20x20平方:

在此輸入圖像描述

然后你要做的就是在你的綠色視圖中添加另一個UIView。 使UIView的大小為20x20pts。 然后將小視圖背景更改為綠色,將較大視圖的背景更改為清除。

也就是說,此解決方案不需要堆棧視圖,可能會使您的UI過於復雜。 我建議只使用autolayout。

Stackviews最有用的時候

  1. 你想補償設備方向的變化,
  2. 想把很多東西堆疊在一起,
  3. 想要創建一個包含許多元素的非常復雜的布局,但是它具有可以重復的模式,或者
  4. 只是希望能夠刪除一個元素或添加一個元素與大小調整自身

該列表並非詳盡無遺,但應該讓您了解何時以及為何使用堆棧視圖。

在原型細胞之外

這種行為是微不足道的。 您只需在視圖上設置約束即可: 在此輸入圖像描述

然后在stackview上設置約束: 在此輸入圖像描述

希望這會有所幫助,歡呼!

通過將寬度和高度約束的優先級設置為800或更高,可以輕松修復斷裂約束問題。

我想在這里發布我的答案,以便其他人可以看到,盡管OP的問題略有不同。

我試圖調整包含UIStackView的UIView的大小,並且約束正在破壞。 我正在改變UIView的高度約束在0到66之間,具體取決於是否有相關信息顯示堆棧視圖正在顯示。

我能夠通過刪除視圖內堆棧視圖的頂部和底部約束來修復斷裂約束,而是將其設置為垂直居中。 這導致我的表格視圖中滾動更加平滑。

暫無
暫無

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

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