无法更改iOS 13中大标题的导航栏色调颜色

时间:2019-10-17 09:01:14

标签: ios swift uinavigationbar ios13

代码:

 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中自定义导航栏吗?

1 个答案:

答案 0 :(得分:4)

有关iOS 13中导航栏外观的一些更改,默认情况下,如果关联视图控制器具有可滚动的内容,导航栏将变为透明。

在这种情况下,您应该创建一个UINavigationBarAppearance对象并将其分配给compactAppearancescrollEdgeAppearance。您也可以更改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
}

您可以在hereiOS13release_notes

中找到更多详细信息