ios autolyouts:标签居中

ios autolyouts: labels centering

在我的应用程序中,我有两个 UILabels 可以包含不同长度的文本,具体取决于所选的本地化。我想将两个标签居中到 superview's 水平中心。

例如:| "xxxxx""xxxx" | 对于英语,它以 view X 为中心。在另一种情况下,它可能是 | "xxxxxxxxxxxx""xxxx" |
| "xxxxxx""xxxxxxxxxx" |。如何使两个标签都以 superview X 为中心。我收到以下结果 |_______"xxxxxxxx""xxxxx..."|
|"xxxxxx"________"xxxxx"|。我想始终根据标签的文本长度大小将标签居中。我如何在 IB 中做到这一点?

您可以添加 UIView 作为两个 UILabel 的容器视图。 在此容器视图中添加两个 UILabel,然后在左侧 UILabel 和右侧 UILabel 之间添加间距。然后将水平中心添加到容器视图。 希望这会有所帮助!

最简单的方法(但并非总是可行)是将这两个标签连接到一个由两个字符串构建的标签中,并将该标签居中。如果无法连接这些字符串 - 使用@SFF 的解决方案

为什么不使用subString并且只使用一个标签??? 呵呵,很简单...

如果按照你的想法,我认为:

  1. 设置属性 uilabel 为 fitsize

  2. 设置 2 个标签之间的自动布局水平间距为 0

  3. Cacutator总宽度(2个标签)和宽度的parentView

    a = parentView.frame.size.width - (lbl1.frame.size.width+lbl2.frame.size.width)

  4. 设置自动布局 lbl1:在容器中领先 space = a/2

  5. 设置自动布局 lbl2:在容器中尾随 space = a/2