ios - 具有不同项目高度的自下而上的 UITableView 滚动到结束

标签 ios objective-c iphone uitableview ios7

我有一个具有不同项目高度的 UITableView。 在开始时,用户应该看到最后的项目(在列表的末尾)并且应该能够手动滚动到顶部。

为了到达列表的末尾,我在调用 [tableView reloadData] 之后在主线程上使用了 [tableView scrollToRowAtIndexPath:lastIndexPath atScrollPositionBottom animated:NO]后台进程。 为了加快速度并达到真正的目的,我使用 estimatedHeightForRowAtIndexPath 并返回前 8 个项目 (CGFloat)500 和其他项目 (CGFloat )100。 使用 estimatedHeightForRowAtIndexPath 可避免为列表中的每个项目调用 heightForRowAtIndexPath(它可能是一个很长的列表)。

在 iOS 8(iPhone 4S、5S、6)上一切正常,但在 iOS 7(iPhone 4S)上,只有 heightForRowAtIndexPath 被调用,而不是 cellForRowAtIndexPath,所以有在我开始滚动之前没有显示任何项目。 为每个 estimatedHeightForRowAtIndexPath 返回 (CGFloat)100 - 调用避免了这种情况,但它不会滚动到列表的实际末尾并与 iOS 8 iPhone 4S 版本相匹配很慢。

有什么建议吗?

最佳答案

好吧,您可以在向下滚动后简单地重新加载可见单元格....

[tableView reloadRowsAtIndexPaths:[tableView indexPathsForVisibleRows] 
                 withRowAnimation:UITableViewRowAnimationNone];

关于ios - 具有不同项目高度的自下而上的 UITableView 滚动到结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27044025/

相关文章:

c++ - 面向对象的问题

ios - 我可以知道 requireGestureRecognizerToFail 到底会做什么吗?

objective-c - 很难找到旋转变换的正确 anchor

iphone - facebook sdk ios 到期日期

iphone - 嵌入式.mobileprovision 中的 ProvisionsAllDevices 与 ProvisionedDevices

ios - 旋转横向和纵向

iphone - WhatsApp 如何知道我联系人的国家代码?

ios - AppDelegate 中的点击覆盖代码不起作用。如何修复这些错误?

iphone - 是否有框架或库和 Web 服务来通过 NTP 以毫秒精度获取原子钟时间?

ios - 在 Storyboard中实例化 xib 时对 initWithCoder 的无限递归调用