居中 UIStackView 不居中视图

Center UIStackView not centering view

我有这个

view.addSubview(myName)
        myName.topAnchor.constraint(equalTo: myImage.bottomAnchor).isActive = true
        myName.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        myName.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true

        let stackView = UIStackView(arrangedSubviews: [myValue1,myValue2])
        view.addSubview(stackView)
        stackView.translatesAutoresizingMaskIntoConstraints = false
        stackView.alignment = .center
        stackView.topAnchor.constraint(equalTo: myName.bottomAnchor).isActive = true

知道为什么它看起来像这样吗?我希望它像示例文本一样垂直居中,我尝试添加

stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true

但后来看起来像这样

知道我错过了什么吗?

尝试

stackView.centerXAnchor.constraint(equalTo: myName.centerXAnchor).isActive = true

这应该使堆栈视图本身以 myName 标签为中心

请注意,如果您希望堆栈视图中的内容很好地对齐,您必须为其提供一些成比例或固定的宽度,并为您的堆栈视图指定一个宽度。

更新

如果要在标签之间添加 space,请在标签之间添加一个额外的 UIView() 到堆栈中:

let spacer = UIView()
spacer.widthAnchor.constraint(equalToConstant: 40.0).isActive = true
 let stackView = UIStackView(arrangedSubviews: [myValue1,spacer, myValue2])