发现问题过程:
App一直在用MJRefresh上拉刷新,但是昨天更新到iOS11后发现上拉刷新后,一直在不停的刷新并请求服务器,但是低版本是可以的,开始以为是MJ的问题,看了一下MJ的Demo,没啥问题。然后CollectionView的上下拉也没啥问题,所以就怀疑是UITableView的问题,查看了一些博客发现iOS11中UITableView有很大的改动,后来发现是我请求数据后就进行了reloadData。iOS11中UITableView在reloadData时contentOffset发生了改变,这时候MJ监听了contentOffset的变化,就导致再一次的调用上拉加载,变成了循环调用。
解决问题:
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;
加入上面代码可以解决此问题。