cell.bodyText.numberOfLines = 0
cell.bodyText.text = newsBody
cell.bodyText.sizeToFit()
我将行数设置为 0,因为行数可以变化(我正在检索新闻文章,并且由于每篇新闻文章的长度明显不同,numberOfLines 为 0)
如果我在将 newsBody
分配给标签后不使用 sizeToFit()
,并检查标签高度(cell.bodyText.frame.size.height )
,我得到了非常大的数字(当我测试它时,一篇有 25 行文本的文章,高度显然是 4000)。如果我使用 sizeToFit
然后检查高度,无论标签多短或多长,我都会得到 21。 (21 是我在 Storyboard中设置的 UILabel 的高度)。
如何准确表示 UILabel 中有多少行,甚至只是标签的高度?
最佳答案
我假设您在 tableView(_:cellForRowAtIndexPath:)
中完成这项工作。这对于查询最终布局是不可靠的。尝试使用委托(delegate)方法 tableView(_:willDisplayCell:forRowAtIndexPath:)
。这是在显示单元格之前立即调用的,并且是解决任何最终布局问题的合适位置,因为此时已应用所有内容。
关于swift - 如何确定 UILabel (Swift) 中使用的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33725206/