在 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)]>")
如果您想要获得如下所示的 20x20 正方形:
然后您所要做的就是将另一个 UIView 添加到您的绿色视图中。使 UIView 的大小为 20x20pts。然后将小视图背景更改为绿色,将大视图背景更改为透明。
也就是说,此解决方案不需要堆栈视图,并且可能会使您的 UI 过于复杂。我建议只使用自动布局。
堆栈视图在
时最有用
- 您想补偿设备方向的变化,
- 想把很多东西叠起来,
- 想要创建一个包含很多元素的非常复杂的布局,但是
您可以重复的模式,或
- 只是希望能够删除一个元素或添加一个元素,并自行调整大小
该列表并不详尽,但应该让您了解何时以及为何使用堆栈视图。
原型单元格外
这种行为是微不足道的。您可以简单地在视图上设置约束:
'
然后在stackview上设置约束:
希望对您有所帮助,干杯!
首先你需要在 cell
上添加 UIStackView
需要为您的 UIStackView
添加约束
调整你的UIStackView
拖放 UILabel
到您的 UIStackView
然后将 UIView
拖放到您的 UIStackView
添加 green-UIView
喜欢的子视图到 pink UIView
现在您可以向 green-UIView
添加几个约束
现在您可以在模拟器或设备上 运行 应用
注意我没有为UILabel
添加任何约束。
将宽高约束的优先级设置为800或以上即可轻松解决打破约束的问题。
我想 post 我的回答在这里,以便其他人可以看到,尽管与 OP 的问题略有不同。
我正在尝试调整包含 UIStackView 的 UIView 的大小,但限制已被打破。我正在将 UIView 的高度限制更改为 0 到 66,具体取决于是否有相关信息显示堆栈视图正在显示。
我能够通过删除视图内堆栈视图的顶部和底部约束来修复中断约束,并将其设置为垂直居中。这使我的 table 视图滚动更加顺畅。
我在 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)]>")
如果您想要获得如下所示的 20x20 正方形:
然后您所要做的就是将另一个 UIView 添加到您的绿色视图中。使 UIView 的大小为 20x20pts。然后将小视图背景更改为绿色,将大视图背景更改为透明。
也就是说,此解决方案不需要堆栈视图,并且可能会使您的 UI 过于复杂。我建议只使用自动布局。
堆栈视图在
时最有用- 您想补偿设备方向的变化,
- 想把很多东西叠起来,
- 想要创建一个包含很多元素的非常复杂的布局,但是 您可以重复的模式,或
- 只是希望能够删除一个元素或添加一个元素,并自行调整大小
该列表并不详尽,但应该让您了解何时以及为何使用堆栈视图。
原型单元格外
这种行为是微不足道的。您可以简单地在视图上设置约束:
然后在stackview上设置约束:
希望对您有所帮助,干杯!
首先你需要在
cell
上添加UIStackView
需要为您的
UIStackView
添加约束调整你的
UIStackView
拖放
UILabel
到您的UIStackView
然后将
UIView
拖放到您的UIStackView
添加
green-UIView
喜欢的子视图到pink UIView
现在您可以向
green-UIView
添加几个约束现在您可以在模拟器或设备上 运行 应用
注意我没有为
UILabel
添加任何约束。
将宽高约束的优先级设置为800或以上即可轻松解决打破约束的问题。
我想 post 我的回答在这里,以便其他人可以看到,尽管与 OP 的问题略有不同。
我正在尝试调整包含 UIStackView 的 UIView 的大小,但限制已被打破。我正在将 UIView 的高度限制更改为 0 到 66,具体取决于是否有相关信息显示堆栈视图正在显示。
我能够通过删除视图内堆栈视图的顶部和底部约束来修复中断约束,并将其设置为垂直居中。这使我的 table 视图滚动更加顺畅。