Свернутая большая панель навигации по заголовкам расширяется после обратной навигации к контроллеру корневого представления

#swift #uitableview #uiscrollview #uinavigationcontroller

#swift #uitableview #uiscrollview #uinavigationcontroller

Вопрос:

У меня есть UIViewController с вертикальным UIScrollView, который имеет UIView в качестве контейнера для всех его подвидов. Вот мои ограничения ScrollView и contentView:

         scrollView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
        scrollView.widthAnchor.constraint(equalTo: view.safeAreaLayoutGuide.widthAnchor).isActive = true
        scrollView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
        scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
        
        contentView.centerXAnchor.constraint(equalTo: scrollView.centerXAnchor).isActive = true
        contentView.widthAnchor.constraint(equalTo: scrollView.widthAnchor).isActive = true
        contentView.topAnchor.constraint(equalTo: scrollView.topAnchor).isActive = true
        contentView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor).isActive = true
 

ViewController

Когда я прокручиваю вниз, моя панель навигации становится меньше, как и должно быть:

Прокручиваемый ViewController

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

Проблема

Вот суть моего кода ViewController

Спасибо!

Ответ №1:

Я настроил свои ограничения и исправил эту проблему.

Новые ограничения:

         scrollView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
        scrollView.widthAnchor.constraint(equalTo: view.safeAreaLayoutGuide.widthAnchor).isActive = true
        
        scrollView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
        scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
        
        contentView.topAnchor.constraint(equalTo: scrollView.topAnchor).isActive = true
        contentView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor).isActive = true
        contentView.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor).isActive = true
        contentView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor).isActive = true
       // contentView.heightAnchor.constraint(equalTo: scrollView.heightAnchor).isActive = would be true if horizontal
        contentView.widthAnchor.constraint(equalTo: scrollView.widthAnchor).isActive = true