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

标签 swift uilabel xcode7 sizetofit

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/

相关文章:

ios - 我正在尝试在快速显示 using\t 时缩进数据,但它不起作用

swift - UILongPressGestureRecognizer 和 UIScreenEdgePanGestureRecognizer

ios - 如何从 NSURLSessionDataTask 获取状态码?

swift xcode - navigationitem.rightbarbuttonitem 不显示图像文字,尽管只是显示蓝色

arrays - 更改数组中的元素时更改 swift UILabel

ios - 在 iOS 中将字符串拆分为子字符串

ios - 删除 Apple Watch 应用程序后是否可以发布 iOS 应用程序更新?

Swift - 将嵌套数组传递给函数的最佳实践

swift - 如何在 UIAlertController 中的 UITextField 之后插入 UILabel

ios - 如何解决这个错误? - 类 'ViewController' 没有初始化器