如何使用Storyboard设置包装文本UILabel Xcode

时间:2018-02-10 21:43:16

标签: ios xcode autolayout uilabel ios-autolayout

我无法使用Xcode 9.2 Storyboarding来包装文本。

此屏幕截图是单个UILabel,在视图中垂直和水平居中,完全没有其他代码:

enter image description here

以下是我的故事板设置的屏幕截图,我设置了Lines = 0Line Break = Word Wrap

enter image description here

3 个答案:

答案 0 :(得分:1)

您需要在标签上添加leadingtrailing约束

enter image description here

或者您可以相对于超级视图width

添加宽度约束

enter image description here

答案 1 :(得分:0)

您只需要为标签添加一些约束,以便它包装文本。请记住设置正确的宽度,这个宽度不会改变。

如果你有标签,最简单的方法就是点击按钮"解决自动布局问题"然后"添加缺失的约束"正如你在图片上看到的那样:

Auto add constraints

如果您的屏幕上有更多元素,那么我建议您查看SnapKit SnapKit(一个DSL,以便在iOS和OS X上轻松实现自动布局)。

答案 2 :(得分:0)

Xcode完全按照它所做的去做。当你垂直和水平居中时,你有什么期望?它应该居中,只有居中。设置为0的行是正确的方法。

你在这里缺少的东西是尾随并导致superview / safe区域。并且从顶部和底部添加大于约束。除非您设置尺寸,否则换行不会做任何事情。所以你必须设置高度和宽度(真的不要这样做......)或设置尾随和前导,在这种情况下你可以删除水平中心,因为它将由2个约束处理(你需要将它们设置为相同的价值)

所以解决方案:

  1. 从侧面添加相等的约束(前导,尾随)
  2. 从顶部和底部添加大于约束(但保持垂直中心约束)
  3. enter image description here