如何使用情节提要设置包装文本 UILabel Xcode

Posted

技术标签:

【中文标题】如何使用情节提要设置包装文本 UILabel Xcode【英文标题】:How to wrap text UILabel Xcode with Storyboard settings 【发布时间】:2018-02-10 21:43:15 【问题描述】:

我无法使用 Xcode 9.2 Storyboard 换行文本。

这个屏幕截图是一个单独的UILabel,在一个视图中垂直和水平居中,根本没有其他代码:

这是我的 Storyboard 设置的截图,我设置了 Lines = 0Line Break = Word Wrap

【问题讨论】:

您至少需要添加leftrigth 约束或width 约束 你能分享一下标签尺寸检查器的截图吗? 【参考方案1】:

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

或者你可以添加一个相对于父视图width的宽度约束

【讨论】:

这不是垂直居中的(你只添加顶部约束) 问题与前导和尾随约束的泄漏有关,我认为 OP 知道如何添加中心垂直约束@DominikBucher 那么为什么最后一个约束甚至在你的答案中? 它的截图@DominikBucher mi 答案是“或者您可以添加相对于超级视图宽度的宽度约束”,您可以阅读 无论如何我已经更新了我的第二个屏幕截图,顺便说一句,这不是一个好习惯,因为您认为您的答案是最佳答案,所以取消其他人的回答资格,我认为是可以判断@DominikBucher 的OP ,最好的问候【参考方案2】:

Xcode 完全按照它的指示去做。当您将某物垂直和水平居中时,您会期待什么?它应该居中,只有居中。设置为 0 的行是正确的方法。

您在这里缺少的东西是尾随并通向超级视图/安全区域。并从顶部和底部添加大于约束。除非您设置大小,否则换行符不起作用。所以你必须要么设置高度和宽度(真的不要这样做......)或者设置尾随和前导,在这种情况下你可以删除水平中心,因为它将由2个约束处理(你需要将它们设置为相同的值)

所以解决办法:

    从两侧(前导、尾随)添加相等的约束 从顶部和底部添加大于约束(但保持垂直中心约束)

【讨论】:

【参考方案3】:

你只需要给你的标签添加一些约束,让它包裹文本。记得设置正确的宽度,这个宽度不会改变。

如果您只有标签,最简单的方法是单击“解决自动布局问题”按钮,然后单击“添加缺少的约束”,如图所示:

Auto add constraints

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

【讨论】:

为什么要用SnapKit这么简单的布局? :D 通过使用不可靠的框架并且不学习任何东西,你能获得什么? 这就是我写“如果你的屏幕上有更多元素”的原因,它明确指出这种方法不适用于简单的布局。添加约束的方法有很多,我只是想分享一个我使用的工具,如果你以不同的方式来做就可以了。

以上是关于如何使用情节提要设置包装文本 UILabel Xcode的主要内容,如果未能解决你的问题,请参考以下文章

使用情节提要中的属性字符串本地化 UILabel

如何在情节提要中为uilabel设置大于300的字体大小?

如何仅使用情节提要使 UILabel 的 UIView 超级视图适合 UILabel 的固有高度?

UIView (或 UILabel ?)与情节提要中另一个 View 的链接

如何在情节提要中的 UILabel 的右边缘添加前导约束?

调整 UILabel 字体大小以适合文本