如何为所有 iphone 设备在同一行中设置多个 UIlabel

Posted

技术标签:

【中文标题】如何为所有 iphone 设备在同一行中设置多个 UIlabel【英文标题】:How to set multiple UIlabel in same line for all iphone devices 【发布时间】:2015-05-21 13:54:22 【问题描述】:

我正在为 4 个 UILabel 设置约束,但它在 iphone 5s 中无法正常工作,并且在 6 和 6 plus 中正常显示。如何设置适当的约束?

在 iphone 5s 中是右侧。

第一个标签,我设置了 x 位置,然后设置了标签之间的空间。然后我从尾随空格设置了第四个标签

【问题讨论】:

【参考方案1】:

由于您的目标似乎是显示带有一些链接的单行文本,因此您最好对所有文本使用单个视图。有一些第三方替代 UILabel 支持链接,例如 Nimbus 和 TTTAttributedLabel。或者,您可以将UITextView 实例配置为像标签一样工作(关闭滚动和编辑),并且可以启用超链接。

使用可以正确处理超链接的单个视图应该可以简化代码并消除约束问题,同时确保文本布局正确。例如,如果文本需要换行到下一行,使用单个视图来完成会容易得多。

Massimo Polimeni 的回答很好地涵盖了您提出的问题的答案:如果您想放置多个标签以使其文本对齐,请在标签之间使用 Baselines 约束。

【讨论】:

【参考方案2】:

选择所有标签,然后添加垂直中心约束

所以现在你的标签应该对齐了:

显然,仅在一个标签处添加 x 位置或边距约束以保持对齐。

如果这能解决您的问题,请告诉我:)


编辑 1:正如 Caleb 所说,我的建议只有在标签的字体大小相同时才有效。如果不是,你应该只使用基线约束。

【讨论】:

对于标签来说,Baselines 约束比 Vertical Centers 是更好的选择,以防标签碰巧有不同的字体大小。跨度> 当然,我建议这样做是因为字体似乎相同。但最好更新我的答案,谢谢 是的,它的工作,我有按钮和标签然后它不工作 对于按钮+标签使用垂直中心约束;如果您需要对齐具有不同字体大小的按钮+标签,您应该将所有对象嵌入到视图中并为容器中的所有垂直中心设置:)

以上是关于如何为所有 iphone 设备在同一行中设置多个 UIlabel的主要内容,如果未能解决你的问题,请参考以下文章

如何为所有 iPhone 设备支持一个 xib,直到 iPhone 6 Plus?

如何为模型中的所有选择查询定义默认 where 条件?

如何为代码中设置的参数设置布局单位?

如何为拥有多个设备的用户管理 APN 令牌?

我们如何在 uitableview 单元格中设置标签约束?

如何为每个 PHP 循环创建一个从表数据中设置变量的循环