我遇到了StackView的逻辑问题,我知道在哪里搜索答案。 所以我有一个stackView,里面有3个elems,2个标签和一个进度条, 我希望我的进度条有一个固定的大小,但从现在开始我的进度条占据了最大标签的宽度。 我尝试在其上添加宽度约束,但如果我的标签的文字长度超过进度条的宽度,我的标签文字将以" ..."
结束我希望如此,无论标签的文字是什么,我的进度条都总是相同的宽度。
我的代码是:
myStackView.snp_makeConstraints { (make) -> Void in
make.centerX.equalTo(myView)
make.centerY.equalTo(myView)
}
myLabelAboveProgressBar.text = "aaaaaaaaaaaaaaaa"
myStackView.addArrangedSubview(myLabelAboveProgressBar)
myProgressBar.setPercentage(20, animted: false)
myStackView.addArrangedSubview(myProgressBar)
答案 0 :(得分:0)
我怀疑堆栈视图的对齐方式是默认为“填充”。您可以按如下方式更改:
myStackView.alignment = .Center
...或任何你想要的对齐方式,例如前导,尾随等
这同样适用于分发:
myStackView.distribution = .FillEqually
......例如。您还有其他选项,如FillEqually,EqualSpacing等
您可能还想为堆栈视图设置固定宽度(或相对于屏幕大小),以便您的布局更具可预测性。听起来它正在缩放以适应当前的内容。