iOS UITableView reloadData 視圖漂移或者閃動(dòng)解決方法
原創(chuàng)
2017年11月02日 16:48:23
標(biāo)簽:
-
/
-
/
-
/
-
/
103
1.視圖漂移或者閃動(dòng)原因:
因?yàn)閕OS 11后系統(tǒng)默認(rèn)開啟Self-Sizing,首先要知道Self-Sizing是個(gè)什么東東。官方文檔是這樣解釋的:大概就是說我們不用再自己去計(jì)算cell的高度了,只要設(shè)置好這兩個(gè)屬性,約束好布局,系統(tǒng)會(huì)自動(dòng)計(jì)算好cell的高度。
IOS11以后,Self-Sizing默認(rèn)開啟,包括Headers, footers。如果項(xiàng)目中沒使用estimatedRowHeight屬性,在IOS11下會(huì)有奇奇怪怪的現(xiàn)象,因?yàn)镮OS11之前,estimatedRowHeight默認(rèn)為0,Self-Sizing自動(dòng)打開后,contentSize和contentOffset都可能發(fā)生改變。
所以可以通過以下方式禁用:
在tableView初始化的地方加入下面代碼
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;
現(xiàn)在在reloadData視圖漂移或者閃動(dòng)就沒有了