? ? ? ? Bug描述:在列表數(shù)據(jù)的上拉加載更多中,有時會連續(xù)自己加載兩次甚至多次!最初發(fā)現(xiàn)這個Bug的時候以為是自己哪里代碼寫的有問題呢,所以就一行一行排除,最后把其他不想關(guān)的代碼都注釋掉了,還是沒能解決!最終黔驢技窮的我開始了百度,不百度不要急,原來是:在iOS11中MJRefresh隨著tableView的變化而做了一些處理:
UITableView:默認開啟Self-Sizing

關(guān)于TableView官方解釋
好像大概意思是說:我們不再需要自己去計算cell的高度了,只要設(shè)置好這兩個屬性,約束好布局,系統(tǒng)會自動計算好cell的高度。IOS11以后,Self-Sizing默認開啟,包括Headers, footers。如果項目中沒使用estimatedRowHeight屬性,在IOS11下會有奇奇怪怪的現(xiàn)象,因為IOS11之前,estimatedRowHeight默認為0,Self-Sizing自動打開后,contentSize和contentOffset都可能發(fā)生改變??梢酝ㄟ^以下方式禁用:
self.tableView.estimatedRowHeight = 0;?
self.tableView.estimatedSectionHeaderHeight = 0;?
self.tableView.estimatedSectionFooterHeight = 0;
解決辦法:
在工程中加三行代碼就搞定了:
?_tableView.estimatedRowHeight?=?0;
??_tableView.estimatedSectionHeaderHeight?=?0;
??_tableView.estimatedSectionFooterHeight?=?0;