在上面的屏幕中,您可以看到我正在使用UIStackView
垂直填充单选按钮。问题是我的单选按钮没有使用UIStackView
的全部宽度,当我使用stackV.alignment = .leading
时,它显示标签为"dis..lified“而不是不合格。
UISTackView码
let ratingStackView : UIStackView = {
let stackV = UIStackView()
stackV.translatesAutoresizingMaskIntoConstraints = false
stackV.backgroundColor = UIColor.yellow
stackV.axis = .vertical
stackV.distribution = .fillEqually
stackV.alignment = .leading
return stackV
}()
UIStackView布局
func setupView(){
view.addSubview(ratingStackView)
ratingStackView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
ratingStackView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor,constant: 8).isActive = true
ratingStackView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor).isActive = true
ratingStackView.heightAnchor.constraint(equalToConstant: 200).isActive = true
//Add radio buttons to stackview
for ratingButton in ratingRadioButtons{
ratingStackView.addArrangedSubview(ratingButton)
}
}
我需要设置什么属性来使用全宽度,请您告诉我,我是Swift单选按钮的新手。我正在使用DLRadioButton
。
发布于 2018-03-18 17:11:07
要使此工作正常进行,您需要在布局中进行以下更改:
1.将UIStackView's
alignment
属性设置为fill
,即
stackV.alignment = .fill
2.将UIButton's
Horizontal Alignment
设置为left
,无论您在.xib
文件中还是通过代码创建RadioButton
。
在.xib
中,您可以在以下界面中找到该属性:
如果使用代码创建按钮,请使用以下代码行:
ratingButton.contentHorizontalAlignment = .left
如果你还在面对这个问题,请告诉我。快乐编码..。
发布于 2018-03-16 13:11:22
保留alignment
的默认值,即.fill
--这样可以在与堆栈轴垂直的方向上拉伸排列好的视图。
实际上,我怀疑如果您使用的是.leading
对齐,并且没有指定嵌套控件的宽度,那么在运行时您将得到自动布局警告(可以在Xcode中的Visual中检查)。
发布于 2018-03-18 12:18:30
尝试按比例分配。
还有一件事要try...Reduce,那就是内容拥抱标签的优先级。
https://stackoverflow.com/questions/49321128
复制相似问题