在iOS11中,如果想是實現tableview從最頂部開始顯示,需要先將navigationBar設置為透明,然后設置UIScroller的contentInsetAdjustmentBehavior為never,但我在代碼中添加一下代碼,缺不能實現對應的效果
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.tintColor = .white
tableView.contentInsetAdjustmentBehavior = .never
效果如下:
image.png
很明顯tableview并沒有從頂部開始繪制,我翻了很多資料都沒有找出答案。
解決過程
由于我的項目是用Interface Builder創建的,就去查看了我的代碼約束,看到約束如下
image.png
頂部的約束是距離Safe Area.Top 0pt,因為有安全區的存在,所以tableview的頂部無法從屏幕最頂端開始顯示。
解決方法
將頂部約束的Second Item 選擇為Supre View,然后constant設為0即可,設置如下:
image.png
效果如下:
image.png