如何在SwiftUI中将NavigationView的标题设置为大标题(或小标题)?

问题描述 投票:0回答:1

使用SwiftUI如何更改导航栏的标题大小?在标准标题或大标题之间进行选择。

Difference between a large and a standard (inline) title

ios swift uinavigationcontroller swiftui
1个回答
2
投票

SwiftUI(Xcode 11.3)

SwiftUI navigationBarTitle修饰符具有可选的displayMode属性,对于小标题,可以将其设置为.inline,对于大标题,可以将其设置为.largeSee documentation

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

如何在UIKit中完成

自iOS 11起,UINavigationBar可以以标准和大标题模式显示其标题。

UIKit]上,如果要在两种行为之间进行选择,则必须设置ViewController的largeTitleDisplayModenavigationItem属性,以决定此特定的视图控制器是否应显示大标题。

然后,您需要检查导航控制器prefersLargeTitlenavigationBar属性。将其设置为true将允许其导航堆栈中的ViewController显示大标题。相反,将其设置为false将阻止它,从而覆盖堆栈中存在的各个NavigationItem的首选项。

这将在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
© www.soinside.com 2019 - 2024. All rights reserved.