contentInsetAdjustmentBehavior никогда не устанавливается - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь установить contentInsetAdjustmentBehavior == .never для UITableView в viewDidLoad() ViewController, однако оно игнорируется, независимо от того, делаю ли я это программно или через InterfaceBuilder.

Вот что я получаю. Изображение является заголовком TableView.

Here is what I get. The image is the header of the TableView.

Наверху у меня есть панель навигации, кстати, прозрачная.

Я ожидаю, что заголовок с изображением будет выглядеть следующим образом

expected behavior

Любая помощь приветствуется. Спасибо

1 Ответ

0 голосов
/ 04 сентября 2018

enter image description here Установите константу topConstraint для imageView равной -64

  • создать выход для topConstraint из imageView
  • объявить переменную 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)
    }
}

См. Этот пример проекта

...