在StackView中添加具有已定义宽度的对象

时间:2016-07-05 12:18:42

标签: swift progress-bar constraints uistackview

我遇到了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)

1 个答案:

答案 0 :(得分:0)

我怀疑堆栈视图的对齐方式是默认为“填充”。您可以按如下方式更改:

myStackView.alignment = .Center

...或任何你想要的对齐方式,例如前导,尾随等

这同样适用于分发:

myStackView.distribution = .FillEqually

......例如。您还有其他选项,如FillEqually,EqualSpacing等

您可能还想为堆栈视图设置固定宽度(或相对于屏幕大小),以便您的布局更具可预测性。听起来它正在缩放以适应当前的内容。