在 iOS 7 中的 cellForRowAtIndexPath 之后不调用 heightForRowAtIndexPath
Posted
技术标签:
【中文标题】在 iOS 7 中的 cellForRowAtIndexPath 之后不调用 heightForRowAtIndexPath【英文标题】:heightForRowAtIndexPath is not called after cellForRowAtIndexPath in iOS 7 【发布时间】:2015-03-08 20:54:08 【问题描述】:我有一个分组的UITableView
,其单元格的内容是动态的。我需要在cellForRowAtIndexPath:
方法中计算每个单元格所需的实际高度。我正在 ios 7 和 iOS 8 设备上进行测试,我发现在 iOS 8 中,当 cellForRowAtIndexPath:
返回时调用方法 heightForRowAtIndexPath:
(然后,我更新了单元格的高度),但它没有被调用iOS 7(因此所有单元格的高度始终相同)。
我无法找到解决此问题的方法...请有人帮助我吗?
提前致谢
【问题讨论】:
【参考方案1】:你的前提是错误的。如果您正确地执行此操作,那么在 iOS 7 和 iOS 8 中(事实上,在这之前的所有系统中),heightForRowAtIndexPath:
在您调用cellForRowAtIndexPath:
之前被调用。一般来说,每行都会调用heightForRowAtIndexPath:
,之前第一次调用cellForRowAtIndexPath:
。这样,表格在开始生成单元格之前就有足够的布局信息。
如果您发现行为有所不同,可能是因为您还使用了estimatedRowHeight
,它在 iOS 8 和 iOS 7 中的行为确实不同。所以简单的解决方案是:不要那样做。
【讨论】:
以上是关于在 iOS 7 中的 cellForRowAtIndexPath 之后不调用 heightForRowAtIndexPath的主要内容,如果未能解决你的问题,请参考以下文章
PhoneGap:iOS 7 中的 UIPickerView 不会像在 iOS 6 中那样自动调整字体大小。关于如何在 iOS 7 中实现的任何解决方案?