如何有条件地在 StackView 中居中图像
Posted
技术标签:
【中文标题】如何有条件地在 StackView 中居中图像【英文标题】:How to center image in StackView conditionally 【发布时间】:2019-03-17 13:51:02 【问题描述】:我有一个包含 UIImageView 和 UILabel 的 StackView。有时 UILabel 包含一个引用,有时它不包含。当它发生时,我希望 UIImageView 为设备宽度的 40% - 我让那部分工作。当它不希望 UIImageView 仍然是相同的宽度时,只是水平居中。实现这一目标的最简单方法是什么?
【问题讨论】:
2 个子堆栈视图并在标签为空字符串时隐藏第二个堆栈视图。或者只是隐藏标签。 【参考方案1】:看来UIStackView并不是你真正需要的,而是简单的UIView
,在父视图中垂直居中,包含UIImageView
和UILabel
,然后设置imageView.trailing
等于@ 987654326@,加上label.sizeToFit()
。
但如果你想坚持你的设计,你可以做的是以编程方式设置 UIStackView 轴。例如,在 IB 中设置堆栈视图,如:
UIStackView IB setting
然后在viewDidLoad()
方法中的代码中:
if label.text == ""
stackView.axis = .vertical
else
stackView.axis = .horizontal
还有label.sizeToFit()
。
这应该可以解决问题。
【讨论】:
以上是关于如何有条件地在 StackView 中居中图像的主要内容,如果未能解决你的问题,请参考以下文章
将图标图像居中,该图标图像位于stackview内部的图像内部