Как установить заголовок NavigationView в SwiftUI на большой заголовок (или маленький)? - PullRequest
0 голосов
/ 10 марта 2020

Используя SwiftUI, как изменить размер заголовка панели навигации? Выбор между стандартным или большим заголовком.

Difference between a large and a standard (inline) title

1 Ответ

4 голосов
/ 10 марта 2020

SwiftUI (Xcode 11.3)

Модификатор SwiftUI navigationBarTitle имеет необязательное свойство displayMode, которое можно установить равным .inline для небольших заголовков и .large для больших заголовков. См. Документацию

NavigationView {
    TopLevelView {
        // […]
    }
    .navigationBarTitle("Test", displayMode: .inline) // ⬅️ Important part
}

Как это делается в UIKit

Поскольку iOS 11, UINavigationBar может отображать свой заголовок в режиме стандартного и большого заголовка .

Вкл. UIKit . Если вы хотите выбрать один из двух вариантов поведения, вам нужно установить свойство largeTitleDisplayMode вашего ViewController navigationItem, чтобы решить, должен ли этот конкретный контроллер представления отображать большой заголовок или нет.

Затем вам нужно проверить свойство prefersLargeTitle вашего контроллера навигации navigationBar. Установка true позволит ViewControllers в его стеке навигации отображать большие заголовки. И наоборот, установка его на false предотвратит его, переопределив предпочтение отдельных NavigationItems, присутствующих в стеке.

Это отобразит большой заголовок в UIKit

// Set this property to true to allow NavigationItems to display large titles
let navigationController = UINavigationController()
navigationController.navigationBar.prefersLargeTitles = true

/*
 Choose between `always`, `never` and `automatic` to decide
 if this particular view controller should display a large title.
 */
let viewController = UIViewController()
viewController.navigationItem.largeTitleDisplayMode = .always
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...