代码之家  ›  专栏  ›  技术社区  ›  modeller

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

  •  1
  • modeller  · 技术社区  · 6 年前

    enter image description here

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

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

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

    UILabel 比右边低 UILabel . 如何解决这个问题?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Rakesha Shastri    6 年前

    您需要添加一个 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
    
        2
  •  0
  •   jon wilson    6 年前

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