zl程序教程

您现在的位置是:首页 >  其它

当前栏目

iOS15解决导航条适配问题

解决 适配 问题 导航条
2023-09-11 14:14:25 时间

在旧版本代码中设置导航条颜色使用的是navigationBar.barTintColor,但在iOS15上并没有生效,而且navigationBar.isTranslucent=NO也没有生效,导航条依然是透明的。

解决方案:

if (@available(iOS 15.0, *)) {
    UINavigationBarAppearance *appearance = [[UINavigationBarAppearance alloc] init];
    [appearance configureWithOpaqueBackground];
    //设置导航条背景色
    appearance.backgroundColor = UIColor.whiteColor;
    //设置导航条标题颜色
    NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
    [attributes setValue:UIColor.blackColor forKey:NSForegroundColorAttributeName];
    appearance.titleTextAttributes = attributes;

    [UINavigationBar appearance].standardAppearance = appearance;
    [UINavigationBar appearance].scrollEdgeAppearance = appearance;
}
[UINavigationBar appearance].backgroundColor = UIColor.whiteColor;
[UINavigationBar appearance].barTintColor = UIColor.whiteColor;
[UINavigationBar appearance].titleColor = UIColor.blackColor;

同理可以设置tabbar的颜色

if (@available(iOS 15.0, *)) {
    UITabBarAppearance * appearance = [[UITabBarAppearance alloc] init];
    [appearance configureWithOpaqueBackground];
    appearance.backgroundColor = UIColor.whiteColor;
    [UITabBar appearance].scrollEdgeAppearance = appearance;
    [UITabBar appearance].standardAppearance = appearance;
}
[UITabBar appearance].backgroundColor = UIColor.whiteColor;