Swift UIStackView 利用 UIStackView 的全宽
Swift UIStackView utilize full width of UIStackView
在上面的屏幕中,您可以看到我正在使用 UIStackView
垂直填充单选按钮。问题是当我使用 stackV.alignment = .leading
时我的单选按钮没有使用 UIStackView
的全宽,它显示标签为 "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
.
保留 alignment
的默认值,即 .fill
– 这会在垂直于堆栈轴的方向上拉伸排列的视图。
实际上,我怀疑如果您使用 .leading
对齐方式并且没有指定嵌套控件的宽度,您将在运行时收到自动布局警告(可以在 Xcode 中的 Visual Debugger 中检查) .
尝试按比例分配。
还有一个尝试...降低标签的内容拥抱优先级。
要使其正常工作,您需要在布局中进行以下更改:
1.设置UIStackView's
alignment
属性为fill
,即
stackV.alignment = .fill
2. 将 UIButton's
Horizontal Alignment
设置为 left
无论您在 [=19= 中创建 RadioButton
] 文件或通过代码。
在.xib
中,您可以在此处的界面中找到属性:
如果您使用代码创建按钮,请使用以下代码行:
ratingButton.contentHorizontalAlignment = .left
如果您仍然遇到此问题,请告诉我。编码愉快..
在上面的屏幕中,您可以看到我正在使用 UIStackView
垂直填充单选按钮。问题是当我使用 stackV.alignment = .leading
时我的单选按钮没有使用 UIStackView
的全宽,它显示标签为 "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
.
保留 alignment
的默认值,即 .fill
– 这会在垂直于堆栈轴的方向上拉伸排列的视图。
实际上,我怀疑如果您使用 .leading
对齐方式并且没有指定嵌套控件的宽度,您将在运行时收到自动布局警告(可以在 Xcode 中的 Visual Debugger 中检查) .
尝试按比例分配。
还有一个尝试...降低标签的内容拥抱优先级。
要使其正常工作,您需要在布局中进行以下更改:
1.设置UIStackView's
alignment
属性为fill
,即
stackV.alignment = .fill
2. 将 UIButton's
Horizontal Alignment
设置为 left
无论您在 [=19= 中创建 RadioButton
] 文件或通过代码。
在.xib
中,您可以在此处的界面中找到属性:
如果您使用代码创建按钮,请使用以下代码行:
ratingButton.contentHorizontalAlignment = .left
如果您仍然遇到此问题,请告诉我。编码愉快..