居中 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])
我有这个
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])