表格视图单元格高度动态 + 从 .xib 加载

Posted

技术标签:

【中文标题】表格视图单元格高度动态 + 从 .xib 加载【英文标题】:Table View Cell Height Dynamically + load from .xib 【发布时间】:2015-05-18 06:56:47 【问题描述】:

我正在使用UITableView 和几个自定义单元格。每个单元格都有自己的高度(单元格包括UICollectionViewUITableView 和更多的自定义UIView)。 除此之外,海关单元(全部)从.xib加载。

基本上,单元格高度应该由模型(mvc)确定,或者是static

在我的情况下,我可以在实例化每个单元格后确定单元格的高度,例如 loadNibNamed:owner:options:dequeueReusableCellWithIdentifier:forIndexPath:(我不关心重用,这不是重点),因为我需要充气单元格的内容。

据我所知,UITableViewDelegateUITableViewDataSource 的方法调用没有记录,因此我不需要考虑它们的调用顺序。

如何确定单元格的高度无需实例化?并且没有Magic numbers

【问题讨论】:

根据您的问题,您的意思是要在运行时确定单元格的高度吗? @Vizllx,是的,我的单元格的高度取决于网络响应。 【参考方案1】:

您需要根据您的模型在以下 UITableViewDelegate 方法中计算行高

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath

如果您的身高计算基于网络响应,请在收到响应时更新您的数据模型并调用 [self.tableView reloadData]

【讨论】:

感谢您的打扰,但请再次阅读我的问题。而且我知道UIItableView 如何处理静态高度。我问的是动态的。 如果您的身高计算是基于网络响应,请在收到响应时更新您的数据模型并调用 [self.tableView reloadData] 你在这里提供的是糟糕的性能。 reloadData 在这里对我不好。 reloadRowsAtIndexPaths 可能对你很方便......如果你也想要性能...... 同样的问题 m8。我无法重新加载单元格,我不会解决我的问题。需要找到更聪明的方法来处理这个问题。

以上是关于表格视图单元格高度动态 + 从 .xib 加载的主要内容,如果未能解决你的问题,请参考以下文章

从 xib 错误加载表格视图中的单元格

UITableView 自定义单元格高度未正确管理 swift 中的动态约束

如何动态更改自定义单元格的表格视图单元格的高度?

动态更改静态表格视图单元格高度

Swift动态表格单元格高度[重复]

动态表格视图单元格,以编程方式更改子视图高度