(iOS 7)不会调用cellForRowAtIndexPath,但会调用heightForRowAtIndexPath

时间:2014-11-19 13:34:42

标签: ios objective-c iphone uitableview ios7

我尝试优化UITableView,它应该在启动时显示列表的结尾。 存储数据库后,它从后台线程调用[tableView reloadData],然后在主线程[tableView scrollToRowAtIndexPath:lastIndexPath atScrollPositionBottom animated:NO]上调用。 我和estimatedRowHeight一起工作,所以只能为可见项调用heightForRowAtIndexPath。 (但如果我将其停用,则对此问题没有任何影响)

在iOS 8设备(iPhone 6,iPhone 5S)上运行此功能一切正常。 从屏幕底部(最后一项)到屏幕cellForRowAtIndexPath上的最后一个可见项目和heightForRowAtIndexPath被调用。 在iOS 7设备(iPhone 4S)上只调用heightForRowAtIndexPath并且TableView上没有项目可见。 如果我滚动两次cellForRowAtIndexPath则会调用并显示项目。 将scrollToRowAtIndexPath设置为animated:YES并没有任何区别。

有什么建议吗?

修改 如果没有scrollToRowAtIndexPath,一切正常,但列表位于顶部。 (错过了目标)

编辑2: 在为(CGFloat)100返回estimatedHeightForRowAtIndexPath后,它可以正常工作。但是根据项目的高度,有时它不会滚动到列表的末尾。因此我返回前8项[{1}},之后(CGFloat)500(这给了我在开头描述的错误)。到达列表底部的任何其他解决方法?

0 个答案:

没有答案