UITableview刷新時界面「亂跑」現象

Self-Sizing在iOS11下是默認開啓的,Headers, footers, and cells都默認開啓Self-Sizing,全部estimated 高度默認值從iOS11以前的 0 改變爲UITableViewAutomaticDimension緩存

estimatedRowHeight這個屬性是給tableView每行設置預估行高,若是目前項目中沒有使用estimateRowHeight屬性,在iOS11的環境下就要注意了,由於開啓Self-Sizing以後,tableView是使用estimateRowHeight屬性的,這樣就會形成contentSize和contentOffset值的變化,在估算行高機制下,contentSize的值是一點點地變化更新的,全部cell顯示完後纔是最終的contentSize值。由於不會緩存正確的行高,tableView reloadData的時候,會從新計算contentSize,就有可能會引發contentOffset的變化,就出現上述奇怪的現象。app

解決方法:
在appdelegate.m文件中,加上這幾句代碼:.net

//能夠經過如下方式禁用blog

if (@available(iOS 11.0, *)) {io

UITableView.appearance.estimatedRowHeight = 0;
UITableView.appearance.estimatedSectionFooterHeight = 0;
UITableView.appearance.estimatedSectionHeaderHeight = 0;
}


轉自:https://blog.csdn.net/jennyhermes/article/details/79628952

table

相關文章
相關標籤/搜索