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初始化的地方加入下面代碼
_tableView.estimatedSectionFooterHeight = 0;
_tableView.estimatedSectionFooterHeight = 0;
_tableView.estimatedRowHeight = 0;
現(xiàn)在在reloadData視圖漂移或者閃動(dòng)就沒有了