我有一个UIStackView
,但是subViews
的第一个视图是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)
我当前的结果如下图所示;
我正在寻找的结果如下;
答案 0 :(得分:2)
您应该为每个标签设置所需的ContentHuggingPriority
。以下设置将满足您的需求
redLabel.setContentHuggingPriority(. required, for: .horizontal)
greenLabel.setContentHuggingPriority(.required, for: .horizontal)
blueLabel.setContentHuggingPriority(.defaultLow, for: .horizontal)
cyanLabel.setContentHuggingPriority(.required, for: .horizontal)
defaultLow
意味着填补其余部分。required
意味着先适合。其他值应介于这两者之间。