пользовательская панель навигации с изображением и двумя заголовками в iOS - PullRequest
0 голосов
/ 14 октября 2019

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

Вариант большого заголовка:

large

Вариант небольшого заголовка:

small

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

Как правильно добиться этой пользовательской панели навигации?

Я также попробовал это (и установил viewController в раскадровке для этого класса):

class NavViewController: UINavigationController {

    var titleView = UIView()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.navigationBar.topItem?.titleView?.backgroundColor = .gray
        titleView.frame = CGRect(x: 0, y: 0, width: 100, height: 300)
        self.navigationBar.topItem?.titleView = titleView
    }
}

Storyboard

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Внутри ViewController в viewDidLoad, добавьте self.navigationController?.navigationBar.addSubview(imageView). (нет необходимости создавать подклассы) Существует даже поддержка AutoLayout внутри UINavigationbar, которая отлично подходит для анимации.

0 голосов
/ 14 октября 2019

Создайте свой собственный вид отдельно в файле XIB, затем установите этот XIB в качестве заголовка для панели навигации.

self.navBar.topItem?.titleView = logoImage

Сделайте это для большого заголовка, для меньшего заполняйте изображение только в заголовке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...