iphone - 在 cellForRowAtIndexPath 中更改 UITableViewCell 高度

标签 iphone objective-c ios

我有一个带有 UITableViewCellsUITableView,它在 cellForRowAtIndexPath 方法中用 UILabels 等填充。 在将 UILabel 添加到单元格后,我想更改 UITableViewCell 的高度。 我怎样才能做到这一点? 我在 heightForRowAtIndexPath 方法中阅读了很多关于这样做的内容,但是这个方法是在 cellForRowAtIndexPath 之前调用的,所以当 heightForRowAtIndexPath 时,新的自定义高度是未知的> 被调用。

那么如何在 cellForRowAtIndexPath 方法中设置我的 UITableViewCell 的高度?

提前致谢,浪费了很多时间在这上面。

最佳答案

您无法更改 cellForRowAtIndexPath 中的高度。 tableView 在显示整个 tableView 之前必须知道高度。这就是为什么为 tableView 中的每个单元格调用 tableView:heightForRowAtIndexPath: 的原因。 例如,这是计算容纳单元格的 scrollView 的大小所需要的。

但由于单元格的创建遵循由您创建的特定算法,因此您应该能够在调用 tableView:cellForRowAtIndexPath: 之前计算出每个单元格的高度。

在 cellForRowAtIndexPath: 中使用确定单元格高度的相同代码部分,并将它们放入 heightForRowAtIndexPath:
优化对于 heightForRowAtIndexPath 很重要,因为每个单元格都会调用它。因此,请确保只进行计算高度所需的最少工作量。

关于iphone - 在 cellForRowAtIndexPath 中更改 UITableViewCell 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9226739/

相关文章:

ios - 在 Swift 中删除表格行的滑动功能没有动画效果

ios - 无法设置任何 IBOutlet

ios - 使用 setContentOffSet 按钮滚动

ios - 在 Charles 中建立 200 连接但无法看到 Https 的响应内容

iphone - 这意味着什么? "mi_cmd_stack_list_frames: Not enough frames in stack."

ios - 委托(delegate)方法不触发?

objective-c - CoreFoundation 和一般指针

iphone - sqlite 与 mysql iPhone 有多相似

objective-c - 使用 CGImageMaskCreate 创建蒙版是全黑的(iphone)

objective-c - 在 Cocoa 中制作具有静态垂直尺寸的 CustomView