我有一个 UIStackView
然而,subViews
的第一个 View 是 UILabel
它没有相应地调整它的大小。
我的代码如下;
private let stackView: UIStackView = {
let view = UIStackView()
view.translatesAutoresizingMaskIntoConstraints = false
view.axis = .horizontal
view.distribution = .fillProportionally
view.alignment = .trailing
view.spacing = 8
return view
}()
当然,我还要加上我的
subViews
内init
如下; stackView.addArrangedSubview(currentBidLabel)
stackView.addArrangedSubview(seperator)
stackView.addArrangedSubview(adCreatedAtLabel)
stackView.addArrangedSubview(moreButton)
我目前的结果如下图所示;
我正在寻找的结果如下;
最佳答案
您应该设置所需的 ContentHuggingPriority
对于每个标签。以下设置将符合您的需求
redLabel.setContentHuggingPriority(. required, for: .horizontal)
greenLabel.setContentHuggingPriority(.required, for: .horizontal)
blueLabel.setContentHuggingPriority(.defaultLow, for: .horizontal)
cyanLabel.setContentHuggingPriority(.required, for: .horizontal)
defaultLow
意思是把剩下的填满。 required
意味着首先适合。 而其他值应该介于这两者之间。
关于ios - 具有动态标签宽度的堆栈 View 分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59421197/