Добавить панель навигации в UICollectionView в swift 4, iOS 11

После обновления iOS 11 и быстрого 4 (Xcode 9) у меня появилось много проблем с пользовательским интерфейсом.:(
Самой неразрешимой проблемой является проблема навигации.
я поместите панель навигации в контроллер UICollectionView.
Высота навигационной панели не отображается должным образом и, тем не менее, я пишу код.

Я установил высоту панели навигации "100". Я пишу этот код в ViewDidLoad().

  if #available(iOS 11.0, *) {

        print("IOS 11 Screen")

        UINavigationBar.appearance().largeTitleTextAttributes = [
            NSForegroundColorAttributeName: UIColor.white,

        ]
        navigationItem.largeTitleDisplayMode = .never
        let height: CGFloat = 100 //whatever height you want
        let bounds = self.navigationController!.navigationBar.bounds
        self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height + height)


    } else {
        print("lower than IOS 11 Screen")
        // Fallback on earlier versions
    }

 collectionview?.frame = CGRect(x: 0, y: 10, width: UIScreen.main.bounds.width, height: (UIScreen.main.bounds.height + 20)) <br>

 override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    let height: CGFloat = 100 //whatever height you want
    let bounds = self.navigationController!.navigationBar.bounds
    self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height + height)

}


override func viewWillAppear(_ animated: Bool) {
        let height: CGFloat = 100 //whatever height you want
        let bounds = self.navigationController!.navigationBar.bounds
        self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height + height)
    }

Однако я попытался с этим кодом. Ничто не работает для меня.

введите описание изображения здесь


Я также попытался открыть раскадровку с представлением исходного кода, и я редактирую высоту панели навигации. Но, это также не работает.
Кто-нибудь может мне помочь? Я пытаюсь решить эту проблему с двух последних дней.

Ответ 1

Пожалуйста, проверьте:

override func viewDidLoad() {
    if #available(iOS 11.0, *) {
        print("IOS 11 Screen")
        UINavigationBar.appearance().largeTitleTextAttributes = [
            NSForegroundColorAttributeName: UIColor.white,
        ]
        self.navigationController?.navigationBar.prefersLargeTitles = true // added this line
        navigationItem.largeTitleDisplayMode = .never
    } else {
        print("lower than IOS 11 Screen")
        // Fallback on earlier versions
    }
}

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    let height: CGFloat = 100 //whatever height you want
    let bounds = self.navigationController!.navigationBar.bounds
    self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height + height)
}