在上面的屏幕中,您可以看到我正在使用UIStackView垂直填充单选按钮。问题是当我使用UIStackView时,我的单选按钮未使用stackV.alignment = .leading的整个宽度,它显示标签为“dis..lified”而不是取消资格。

UISTack查看代码

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

最佳答案

要使此工作正常进行,您需要对布局进行以下更改:

1. UIStackView's alignment属性设置为fill,即

stackV.alignment = .fill

2. UIButton's文件中或通过代码创建Horizontal Alignment的任何位置,都将left RadioButton设置为.xib

.xib中,您可以在以下接口(interface)中找到该属性:

ios - Swift UIStackView利用UIStackView的全宽-LMLPHP

如果要使用代码创建按钮,请使用以下代码行:
ratingButton.contentHorizontalAlignment = .left

让我知道您是否仍然面临这个问题。祝您编程愉快。🙂

关于ios - Swift UIStackView利用UIStackView的全宽,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49321128/

10-13 06:30