--more--> 修改 设置方法需修改,参考barTintColor not working in iOS 15 原来设置导航栏代码不变,新增设置UINavigationBarAppearance实例对象的属性 UINavigationBar *bar = self.navigationController.navigationBar; if (@available(iOS 13.0, *)) { UINavigationBarAppearance *barAppearance = [UINavigationBarAppearance new]; barAppearance.backgroundColor = color; //
NSAttributedString.Key.foregroundColor: UIColor.white ] run起来后发现,导航栏颜色设置没有作用,呈现是白色,字体颜色也没有生效,呈现黑色,查看导航栏特性API:UINavigationBarAppearance 后发现,iOS15navigationBar的相关属性设置要通过实例UINavigationBarAppearance来实现,UINavigationBarAppearance是iOS13更新的API, 应该有人已经在用,我们的应用兼容iOS10以上,对于导航栏的设置还没有使用UINavigationBarAppearance,如今在iOS15上失效,所以对于呈现的问题,做如下适配: 新代码 ..... . if #available(iOS 15, *) { let app = UINavigationBarAppearance.init() app.configureWithOpaqueBackground
blackColor 解决方案 其实是iOS13后苹果更新UINavigationBar属性参数配置问题引起,配置以下方法解决: if (@available(iOS 13.0, *)) { UINavigationBarAppearance *appearance = [UINavigationBarAppearance new]; [appearance configureWithOpaqueBackground];//
self.navigationBar setShadowImage:[[UIImage alloc] init]]; iOS15之后 if(@available(iOS 15.0, *)) { UINavigationBarAppearance *appearance = [[UINavigationBarAppearance alloc] init]; //去掉透明后导航栏下边的黑边 appearance.shadowImage
// UINavigationBar let navigationBarAppearance = UINavigationBarAppearance() navigationBarAppearance.backgroundColor
UINavigationBar appearance] setBarTintColor: RGB(3, 14, 30, 1)]; 你会发现你设置的导航颜色是正常的色值,但是就是偏淡,那是因为导航的默认属性是半透明的, [[UINavigationBarappearance