【发布时间】:2015-05-21 13:54:22
【问题描述】:
我正在为 4 个 UILabel 设置约束,但它在 iphone 5s 中无法正常工作,并且在 6 和 6 plus 中正常显示。如何设置适当的约束?
在 iphone 5s 中是右侧。
第一个标签,我设置了 x 位置,然后设置了标签之间的空间。然后我从尾随空格设置了第四个标签
【问题讨论】:
标签: ios ios8 xcode6.3 ios-autolayout
我正在为 4 个 UILabel 设置约束,但它在 iphone 5s 中无法正常工作,并且在 6 和 6 plus 中正常显示。如何设置适当的约束?
在 iphone 5s 中是右侧。
第一个标签,我设置了 x 位置,然后设置了标签之间的空间。然后我从尾随空格设置了第四个标签
【问题讨论】:
标签: ios ios8 xcode6.3 ios-autolayout
由于您的目标似乎是显示带有一些链接的单行文本,因此您最好对所有文本使用单个视图。有一些第三方替代 UILabel 支持链接,例如 Nimbus 和 TTTAttributedLabel。或者,您可以将UITextView 实例配置为像标签一样工作(关闭滚动和编辑),并且可以启用超链接。
使用可以正确处理超链接的单个视图应该可以简化代码并消除约束问题,同时确保文本布局正确。例如,如果文本需要换行到下一行,使用单个视图来完成会容易得多。
Massimo Polimeni 的回答很好地涵盖了您提出的问题的答案:如果您想放置多个标签以使其文本对齐,请在标签之间使用 Baselines 约束。
【讨论】:
选择所有标签,然后添加垂直中心约束:
所以现在你的标签应该对齐了:
显然,仅在一个标签处添加 x 位置或边距约束以保持对齐。
如果这能解决您的问题,请告诉我:)
编辑 1:正如 Caleb 所说,我的建议只有在标签的字体大小相同时才有效。如果不是,你应该只使用基线约束。
【讨论】: