Панель навигации не привязана к верхнему быстрому - PullRequest
0 голосов
/ 27 марта 2020

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

https://i.stack.imgur.com/75Iyt.jpg

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

https://i.stack.imgur.com/vJTde.jpg

Код, который я добавил выше, просто чтобы показать комментарий, чтобы он может помочь мне в дальнейшем. Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 марта 2020

Самый простой способ сделать это - настроить элемент навигации в вашем контроллере представления (так что вы не создаете панель навигации самостоятельно, вы оставляете ее до содержащей UINavigationController). Следующее, я думаю, довольно близко познакомит вас с этим.

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        navigationItem.title = "Chat"
        navigationItem.leftBarButtonItem = UIBarButtonItem.init(barButtonSystemItem: .close, target: nil, action: nil)
        // Color the backgrounds for debugging.
        view.backgroundColor = .lightGray
        navigationController?.navigationBar.backgroundColor = .red
    }
}

Если вы используете раскадровку для создания своего начального контроллера представления, то выберите свой контроллер представления и выберите «Редактор»> «Встроить»> «Контроллер навигации». Или, если вы делаете все в коде, вам просто нужно изменить, где бы вы ни создавали этот текущий контроллер представления, на что-то вроде:

    let navController = UINavigationController(rootViewController: ChatViewController())

К сожалению, это не сработает, если prefersLargeTitles on iOS 13. Я отредактирую этот ответ с решением для этого, когда я придумаю его. Однако ваш снимок экрана не выглядит так, как будто для этого параметра установлено значение true, хотя он есть в вашем коде, поэтому, возможно, это не имеет большого значения.

0 голосов
/ 27 марта 2020

, если вы не хотите, чтобы контроллер представления находился за go за решеткой, используйте это:

edgesForExtendedLayout = []
...