如何确定UILabel(Swift)中使用的行数?

时间:2015-11-15 21:21:41

标签: swift uilabel xcode7 sizetofit

cell.bodyText.numberOfLines = 0

cell.bodyText.text = newsBody
cell.bodyText.sizeToFit()

我将行数设置为0,因为行数可以变化(我正在检索新闻文章,因为每篇新闻文章的长度明显不同,numberOfLines为0)

如果我在为sizeToFit()分配标签后没有使用newsBody,并检查标签高度(cell.bodyText.frame.size.height),我会得到非常大的数字(当我测试它时,一篇文章说有25行文字,高度显然是4000)。如果我使用sizeToFit然后检查高度,无论标签有多短或多长,我都会得到21(21是我设置UILabel的高度)故事板)。

如何准确表示UILabel中有多少行,甚至只是标签的高度?

1 个答案:

答案 0 :(得分:1)

我假设你在tableView(_:cellForRowAtIndexPath:)做这项工作。这对查询最终布局来说不可靠。尝试使用委托方法tableView(_:willDisplayCell:forRowAtIndexPath:)。这是在显示单元格之前立即调用的,并且是解决任何最终布局问题的合适位置,因为此时已应用了所有内容。