contentInsetAdjustmentBehavior 从未设置

contentInsetAdjustmentBehavior is never set

我正在尝试为 ViewControllerviewDidLoad() 中的 UITableView 设置 contentInsetAdjustmentBehavior == .never,但是它被忽略了,无论我是否这样做以编程方式或通过 InterfaceBuilder。

这是我得到的。图片是TableView的header.

我的导航栏在上面,顺便说一句,它是透明的。

我希望 Header 的图像是这样的

感谢您的帮助。谢谢

设置imageView的topConstraint常量为-64

  • 为 imageView 的 topConstraint 创建一个 Outlet
  • 声明一个变量topPadding(对于iPhone X)

    @IBOutlet weak var topConstraint: NSLayoutConstraint!
    var topPadding:CGFloat = 0.0
    

并在viewDidload中使用下面的代码

override func viewDidLoad() {
    super.viewDidLoad()

    self.navigationController!.navigationBar.setBackgroundImage(UIImage(), for: .default)
    self.navigationController!.navigationBar.shadowImage = UIImage()
    self.navigationController!.navigationBar.isTranslucent = true
    topConstraint.constant = -64
    if #available(iOS 11.0, *) {
        let window = UIApplication.shared.keyWindow
        topPadding = (window?.safeAreaInsets.top)!
        topConstraint.constant = -(64+topPadding)
    }
}

Refer this sample project