如何处理长文本UILabel

时间:2013-08-26 16:02:34

标签: ios objective-c uilabel autolayout

我有一个有很多标签的视图。其中一些动态获取文本集。有时文本要在一行内显示它。我知道如何以多行显示文本。我的问题是,当我以多行显示文本时,标签之间的边距就会断开。有时,标签甚至会进入下一个标签的内容。

我想避免“手动”修复此问题(重新定位所有其他元素)。也许Autolayout可以解决这个问题,但遗憾的是我现在无法使用它。但是将我的项目从spring& struts转换为autolayout将是一个很好的论据。但是,也许还有另一种方法可以解决这个问题。如果有人可以帮助我,那会很好。提前谢谢!

1 个答案:

答案 0 :(得分:1)

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