今是昨非

今是昨非

日出江花红胜火,春来江水绿如蓝

iOS 15导航栏设置

iOS 15 导航栏设置#

背景#

使用 Xcode 13.0 运行项目到 iOS 15 的手机上,出现导航栏黑色。但是在低版本 Xcode 运行到手机就没有问题。

修改#

设置方法需修改,参考barTintColor not working in iOS 15

原来设置导航栏代码不变,新增设置 UINavigationBarAppearance 实例对象的属性,然后赋值到全局的 navigationBar 或者单个页面的 navigaitonBar 属性中,取决于项目的设置是全局 NavigationBar 还是单个页面设置 (可参考iOS StatusBar 设置)。

代码如下:


- (void)updateNavigationBarColor:(UIColor *)color {
    UINavigationBar *bar = self.navigationController.navigationBar;
    if (@available(iOS 13.0, *)) {
        UINavigationBarAppearance *barAppearance = [UINavigationBarAppearance new];
        barAppearance.backgroundColor = color; // 设置背景颜色
        barAppearance.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor],
                                              NSFontAttributeName : [UIFont fontWithName:@"Helvetica-Bold" size:17]}; // 设置导航栏字体颜色和大小
        barAppearance.shadowColor = [UIColor clearColor]; // 设置导航栏底部的分割线不显示
        
        bar.scrollEdgeAppearance = bar.standardAppearance = barAppearance;
        [bar setShadowImage:[UIImage new]];
    } else {
        // Fallback on earlier versions
    }
    [bar setBackgroundImage:[UIImage wps_createImageWithColor:color] forBarMetrics:UIBarMetricsDefault];
}

参考#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。