1.UITableView在有導航條的情況下,布局從0開始沒問題,但是在沒有導航條的情況下,布局從0開始會把狀態欄空出來,需要添加一段代碼。
if (@available(iOS 11.0, *)) {
self.tableview.contentInsetAdjustmentBehavior=UIScrollViewContentInsetAdjustmentNever;
} else {
self.automaticallyAdjustsScrollViewInsets=NO;
}
對于iPhoneX(圓角屏幕)而言,擁有下拉刷新上拉加載控件的整屏幕的tableview也需要添加該代碼,否則控件刷新完會裸露在外面,以MJRefresh為例。
2.因為iOS 11后系統默認開啟Self-Sizing,首先要知道Self-Sizing是個什么東東。官方文檔是這樣解釋的:大概就是說我們不用再自己去計算cell的高度了,只要設置好這兩個屬性,約束好布局,系統會自動計算好cell的高度。
IOS11以后,Self-Sizing默認開啟,包括Headers, footers。如果項目中沒使用estimatedRowHeight屬性,在IOS11下會有奇奇怪怪的現象,因為IOS11之前,estimatedRowHeight默認為0,Self-Sizing自動打開后,contentSize和contentOffset都可能發生改變。
所以可以通過以下方式禁用:
在tableView初始化的地方加入下面代碼
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;
現在在reloadData視圖漂移或者閃動就沒有了