如何使用情节提要设置包装文本 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 = 0
和 Line Break = Word Wrap
【问题讨论】:
您至少需要添加left
和rigth
约束或width
约束
你能分享一下标签尺寸检查器的截图吗?
【参考方案1】:
您需要在标签中添加leading
和trailing
约束
或者你可以添加一个相对于父视图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 的 UIView 超级视图适合 UILabel 的固有高度?