Ios 如何在一行内垂直对齐两个UILabel?

Ios 如何在一行内垂直对齐两个UILabel?,ios,swift,autolayout,Ios,Swift,Autolayout,我试图将两个UILabels放在一行内:一个UILable在左侧,文本左对齐,一个UILabel在右侧,文本右对齐。请看上图。它们有不同的字体大小 我使用了以下自动布局约束: let labelHorizontalConstrains = NSLayoutConstraint.constraints( withVisualFormat: "H:|-20-[nameLabel]-15-[birthDeathDateLabel]-20-|", metrics: ni

我试图将两个
UILabel
s放在一行内:一个
UILable
在左侧,文本左对齐,一个
UILabel
在右侧,文本右对齐。请看上图。它们有不同的字体大小

我使用了以下自动布局约束:

 let labelHorizontalConstrains = NSLayoutConstraint.constraints(
        withVisualFormat: "H:|-20-[nameLabel]-15-[birthDeathDateLabel]-20-|",
        metrics: nil,
        views: views)
    allConstraints += labelHorizontalConstrains

但是结果表明它们没有垂直对齐:左侧的
UILabel
低于右侧的
UILabel
。如何解决此问题?

您需要添加一个
centerYAnchor
约束

birthDeathDateLabel.centerYAnchor.constraint(equalTo: nameLabel.centerYAnchor).isActive = true
但是,如果希望它与文本底部对齐,则应使用
UIStackView

let stackView = UIStackView(arrangedSubviews: [nameLabel, birthDeathDateLabel])
stackView.alignment = .firstBaseline
stackView.axis = .horizontal
// Add other stackview properties and constraints

需要向右侧标签添加前导约束和高度约束。将尾部和高度约束添加到左侧标签。然后指定相等宽度约束。此外,在右侧标签上,使用尾随约束添加到左侧标签的距离,对于左侧标签,添加一个前导约束,以确定距离右侧标签的距离。。在故事板上容易得多。你也可以同样使用fit。。我记不起实际的代码,但它可能已经刷新了您的内存。如果我太累了,我会在一个框架故事板上添加这种约束