如何为 stackview child 设置特定宽度,swift?

How to set specific width to stackview child, swift?

我正在创建一个堆栈视图,其中有 5 个子视图。 (3 个自定义视图除以 2 个分隔视图)。两个分隔视图的宽度必须为 1,并且每个子视图必须居中并均匀填充。 这是我当前的代码和结果,看起来不太好。

var stackView: UIStackView = {
    let view = UIStackView()
    view.axis = .horizontal
    view.alignment = .center
    view.distribution = .fillEqually
    view.translatesAutoresizingMaskIntoConstraints = false
    return view
}()

func setUpView() {
    containerView.addSubview(stackView)
    stackView.topAnchor.constraint(equalTo: containerView.topAnchor, constant: 8).isActive = true
    stackView.bottomAnchor.constraint(equalTo: containerView.bottomAnchor, constant: -8).isActive = true
    stackView.leadingAnchor.constraint(equalTo: homeLogoImageView.trailingAnchor , constant: 18).isActive = true
    stackView.trailingAnchor.constraint(equalTo: awayLogoImageView.leadingAnchor, constant: -18).isActive = true
        
    stackView.addArrangedSubview(homeWinView)
    stackView.addArrangedSubview(seperator1)
    stackView.addArrangedSubview(drawView)
    stackView.addArrangedSubview(seperator2)
    stackView.addArrangedSubview(awayWinView)

    seperator1.widthAnchor.constraint(equalToConstant: 1).isActive = true
    seperator1.heightAnchor.constraint(equalToConstant: 60).isActive = true
    seperator2.widthAnchor.constraint(equalToConstant: 1).isActive = true
    seperator2.heightAnchor.constraint(equalToConstant: 60).isActive = true
}

输出:

期望:

fillEqually 不起作用,当您只希望堆栈视图中的 某些 视图平均填充时。

fillEqually更改为fill,并自行使用约束添加“相等”部分。

NSLayoutConstraint.activate([
    homeWinView.widthAnchor.constraint(equalTo: drawView.widthAnchor),
    homeWinView.widthAnchor.constraint(equalTo: awayWinView.widthAnchor),
])