ios - UITableView 单元格的动态高度问题(Swift)

标签 ios swift xcode uitableview row-height

可变长度的文本数据被注入(inject)到 tableview 单元格标签中。为了使每个单元格的高度大小合适,我在 viewDidLoad() 中实现了:

self.tableView.estimatedRowHeight = 88.0
self.tableView.rowHeight = UITableViewAutomaticDimension

这估计高度为 88.0 像素,如果更大,应该自动调整高度。它非常适合尚未滚动到的单元格(因为在滚动单元格时调用UITableViewAutomaticDimention),但不适用于单元格在用数据加载表格时最初呈现在屏幕上。

我已经尝试重新加载数据(如许多其他资源中所建议的那样):

self.tableView.reloadData()

viewDidAppear()viewWillAppear() 中都没有帮助。我迷路了..有谁知道如何渲染最初在屏幕上加载的单元格的动态高度?

最佳答案

试试这个:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

编辑

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

swift 4

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

swift 4.2

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableView.automaticDimension
}

定义以上两种方法。
它解决了这个问题。

PS:此功能需要顶部和底部约束。

Here is example

关于ios - UITableView 单元格的动态高度问题(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30494702/

相关文章:

ios - 如何从 UICollectionViewFlowLayout 为 itemSize 制作动画?

ios - swift:键盘观察器不起作用

php - 是否有标准方法来更新使用 mysql 数据库的提要?

ios - 禁止自动 Apple Pay 建议

c++ - 在 XCode 4.4.1 上构建 gtest 框架

xcode - 安装声称已成功,但在设备上找不到应用程序

ios - 如何删除 xcode 5 中的旧配置文件?

ios - 无法使用 WebRTC 渲染远程视频

ios - 自定义键盘的 "Allow Full Access"导致 sigkill,设备卡住

swift - 如何在执行 navigationLink 之前执行操作