如何有条件地在StackView中居中图像

问题描述 投票:0回答:1

我有一个包含UIImageView和UILabel的StackView。有时UILabel包含引号,有时则不包含引号。如果它,我希望UIImageView是设备宽度的40% - 我有那个部分工作。当它不是我想要UIImageView仍然是相同的宽度,只是水平居中。最简单的方法是什么?StackView

StackView Settings

ios swift autolayout uistackview
1个回答
1
投票

似乎UIStackView不是你真正需要的,而是简单的UIView,它在父视图中垂直居中,并包含UIImageViewUILabel,然后设置imageView.trailing等于label.leading,再加上label.sizeToFit()

但是如果你想坚持你的设计,你可以做的是以编程方式设置UIStackView轴。例如,在IB中设置堆栈视图,如:

UIStackView IB setting

然后在viewDidLoad()方法的代码中:

if label.text == "" {
    stackView.axis = .vertical
} else {
    stackView.axis = .horizontal
} 

还有label.sizeToFit()

这应该够了吧。

© www.soinside.com 2019 - 2024. All rights reserved.