? ? ? ? Bug描述:在列表數(shù)據(jù)的上拉加載更多中漩勤,有時(shí)會(huì)連續(xù)自己加載兩次甚至多次!最初發(fā)現(xiàn)這個(gè)Bug的時(shí)候以為是自己哪里代碼寫的有問(wèn)題呢吃挑,所以就一行一行排除徐裸,最后把其他不想關(guān)的代碼都注釋掉了,還是沒(méi)能解決刻撒!最終黔驢技窮的我開(kāi)始了百度骨田,不百度不要急,原來(lái)是:在iOS11中MJRefresh隨著tableView的變化而做了一些處理:
UITableView:默認(rèn)開(kāi)啟Self-Sizing
好像大概意思是說(shuō):我們不再需要自己去計(jì)算cell的高度了疫赎,只要設(shè)置好這兩個(gè)屬性盛撑,約束好布局,系統(tǒng)會(huì)自動(dòng)計(jì)算好cell的高度捧搞。IOS11以后抵卫,Self-Sizing默認(rèn)開(kāi)啟狮荔,包括Headers, footers。如果項(xiàng)目中沒(méi)使用estimatedRowHeight屬性介粘,在IOS11下會(huì)有奇奇怪怪的現(xiàn)象殖氏,因?yàn)镮OS11之前,estimatedRowHeight默認(rèn)為0姻采,Self-Sizing自動(dòng)打開(kāi)后雅采,contentSize和contentOffset都可能發(fā)生改變】祝可以通過(guò)以下方式禁用:
self.tableView.estimatedRowHeight = 0;?
self.tableView.estimatedSectionHeaderHeight = 0;?
self.tableView.estimatedSectionFooterHeight = 0;
解決辦法:
在工程中加三行代碼就搞定了:
?_tableView.estimatedRowHeight?=?0;
??_tableView.estimatedSectionHeaderHeight?=?0;
??_tableView.estimatedSectionFooterHeight?=?0;