适用于 iOS 11 的 UITableView 滚动故障(由重新加载数据表和 mopub 放置器导致的内容偏移跳转)



当我升级到iOS 11时,我的应用程序的表格视图突然无法流畅滚动。每当我滚动(或reloadData),表格视图会突然跳转到随机内容偏移位置。

我使用 mopub 的放置器将广告插入表格视图,我注意到每当应用程序执行[tableview reloadData]时,表格视图滚动偏移量都会出错并跳到随机位置。

升级到iOS 11一个月后,我发现了这个讨论: UITableView 重新加载方法显示行为回归在 Apple 开发者论坛中。

原来这种诡异的行为是由[tableview reloadData]引起的,mopub广告放置器总是调用[tableview reloadData]。因此,带有 mopub 广告放置器的表视图将遇到此问题。

要解决问题,只需设置:

self.tableView.estimatedRowHeight = 0; self.tableView.estimatedSectionHeaderHeight = 0; self.tableView.estimatedSectionFooterHeight = 0;

所有滚动和重新加载数据行为都将像iOS 10一样非常流畅。

最新更新