如何处理长文本UILabel



我有一个有很多标签的视图。其中一些是动态获取文本集的。有时文本太长,无法在一行内显示。我知道如何在多行中显示文本。我的问题是,当我在多行中显示文本时,标签之间的边距会被打断。有时,一个标签甚至会转换为下一个标签的内容。

我想避免"手动"修复(重新定位所有其他元素)。也许Autolayout可以解决这个问题,但遗憾的是,我现在无法使用它。但将我的项目从spring&昂首阔步地进入自动布局。然而,也许还有另一种方法可以解决这个问题。如果有人能帮我就好了。提前感谢!

您可以使用sizeWithFont:constrainedToSize:lineBreakMode:来计算每个标签所需的高度。您应该在一个循环中使用它,该循环按照每个标签在屏幕上的显示顺序对它们进行迭代。进行时,将y位置增加当前标签的高度和边距。现在,每个标签都将具有正确的位置,并且在循环结束时,y将保持所需的全部高度。