在iOS11中,如果想是實(shí)現(xiàn)tableview從最頂部開始顯示,需要先將navigationBar設(shè)置為透明,然后設(shè)置UIScroller的contentInsetAdjustmentBehavior為never,但我在代碼中添加一下代碼,缺不能實(shí)現(xiàn)對(duì)應(yīng)的效果
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.tintColor = .white
tableView.contentInsetAdjustmentBehavior = .never
效果如下:

image.png
很明顯tableview并沒有從頂部開始繪制,我翻了很多資料都沒有找出答案。
解決過程
由于我的項(xiàng)目是用Interface Builder創(chuàng)建的,就去查看了我的代碼約束,看到約束如下

image.png
頂部的約束是距離Safe Area.Top 0pt,因?yàn)橛邪踩珔^(qū)的存在,所以tableview的頂部無法從屏幕最頂端開始顯示。
解決方法
將頂部約束的Second Item 選擇為Supre View,然后constant設(shè)為0即可,設(shè)置如下:

image.png
效果如下:

image.png