无论文本如何,UILabel 都会将高度调整为 0
Posted
技术标签:
【中文标题】无论文本如何,UILabel 都会将高度调整为 0【英文标题】:UILabel keeps resizing to a height of 0 regardless of the text 【发布时间】:2016-05-25 02:18:59 【问题描述】:我有一个具有以下约束的 UILabel
我将行数设置为 0。IB 上的布局如下所示。我希望这个 UILabel 根据我收到的文本动态扩展,其中它下面的视图根据 UILabel 的高度被向下推。然而,事实并非如此。
如下所示,UILabel 根本没有出现。无论我将文本设置为什么,它的高度似乎都是 0。有谁知道我需要修改什么才能做到这一点?有谁知道为什么 UILabel 的高度为 0?
更新:
给定下面的 cmets,我尝试过的事情。
自动换行,没有任何改变
在UILabel上添加高度限制,文本在第一行后被截断
大于等于常量的高度约束,第一行后文字仍然被截断
【问题讨论】:
【参考方案1】:我根据您的要求创建了一个虚拟视图。
按钮具有固定约束:前导宽度、高度、顶部空间。
对于标签:前导、尾随、topSpace 到按钮
3.对于标签下方的视图:为标签提供前导、尾随、高度、顶部空间
-
所以这里的标签高度不是固定的。所以它会根据文本而改变。
【讨论】:
嗯,我刚试过,但没有用。上面的按钮有固定约束,UILabel 有前导、尾随和顶部到按钮约束,标签下面的 UIView 有前导、尾随、固定高度和顶部到 UILabel。 UILabel 的行数设置为 0,我也将其设置为自动换行。我遵循了上面列出的所有步骤,但它仍然对我不起作用。文本在第一行之后被截断。 @user2492566 :你能给出视图控制器的完整图像吗?该图像下方是否还有其他视图 我更新了屏幕截图以包含视图控制器中的所有内容。这些是 UILabel 下方的一堆其他视图。如果您还需要什么,请告诉我 @user2492566 :我可能认为 UILabel 下面的视图约束存在问题。是不是图像视图的高度是固定的 红色视图具有固定高度,但下方的图像视图没有固定高度。我希望它们根据标签高度增加后剩余的空间来动态扩展或收缩【参考方案2】:在标签中设置文本后尝试“labelName.sizeToFit()”,这将自动调整标签的高度。
【讨论】:
【参考方案3】:您应该尝试为您的标签设置height
约束。
【讨论】:
我试过了,但是第一行之后文字被截断了 因此您希望标签根据行数动态调整大小。设置好标签后可以拨打sizeToFit
【参考方案4】:
考虑到您提供的信息,它似乎没有足够的高度,因为您正在对其下方的视图使用底部约束。重新排列约束或为 UILabel 提供高度约束。
【讨论】:
我尝试在标签上添加高度约束,但这只会让它显示文本的第一行。你建议我如何重新安排约束? 如果您想要多行并自动调整大小,则不应为标签指定高度或底部约束。我建议创建一个空的故事板,并首先通过添加前导、尾随和顶部约束来使标签按您想要的方式工作,检查它是否正常工作,然后添加其他元素而不给您的标签提供高度或底部约束。【参考方案5】:选择UILabel
,设置换行方式为自动换行,设置行数为0,示例如下,
并设置Height Constraints,如果设置了height Constraints,则选择UILabel
,见右侧,选择show size Inspector --> 双击height Contraints --> Relation --> 设置大于或等于,标签自动展开,示例如下,
希望对你有帮助
【讨论】:
我刚刚尝试了换行,行等于 0,并添加了大于或等于的高度约束,现在只显示第一行文本。所以它仍然被切断,但我不明白为什么,因为高度大于或等于。因此,如果有更多文本,它应该会扩展。以上是关于无论文本如何,UILabel 都会将高度调整为 0的主要内容,如果未能解决你的问题,请参考以下文章