Swift UIStackView利用UIStackView的全宽

Dee*_*pak 3 ios swift uistackview

在上面的屏幕中,您可以看到我正在使用a 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
}()
Run Code Online (Sandbox Code Playgroud)

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)
    }        
}
Run Code Online (Sandbox Code Playgroud)

我需要设置什么属性才能利用全宽,请问我是Swift单选按钮的新手。我正在使用DLRadioButton

PGD*_*Dev 7

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

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

stackV.alignment = .fill
Run Code Online (Sandbox Code Playgroud)

2.设置UIButton's Horizontal Alignmentleft您要RadioButton.xib文件中或通过代码创建的任何位置。

在中.xib,您可以在界面中找到此属性:

在此处输入图片说明

如果要使用代码创建按钮,请使用以下代码行:

ratingButton.contentHorizontalAlignment = .left
Run Code Online (Sandbox Code Playgroud)

让我知道您是否仍然面对这个问题。快乐编码