代码:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UINavigationBar.appearance().barTintColor = .red
return true
}
如果preferredsLargetitles为false,则没有问题。 但是,随着preferredsLargeTitles = true的出现,颜色不会改变。 该功能过去曾在iOS 12上运行。但是,由于iOS 13不能正常运行。有人可以帮忙在iOS 13中自定义导航栏吗?
答案 0 :(得分:4)
有关iOS 13中导航栏外观的一些更改,默认情况下,如果关联视图控制器具有可滚动的内容,导航栏将变为透明。
在这种情况下,您应该创建一个UINavigationBarAppearance
对象并将其分配给compactAppearance
和scrollEdgeAppearance
。您也可以更改UINavigationBarAppearance
对象的属性。
if #available(iOS 13.0, *) {
let appearance = UINavigationBarAppearance()
appearance.backgroundColor = .purple
UINavigationBar.appearance().compactAppearance = appearance
UINavigationBar.appearance().scrollEdgeAppearance = appearance
} else {
UINavigationBar.appearance().barTintColor = .purple
}
中找到更多详细信息