首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >iOS 15导航栏设置

iOS 15导航栏设置

原创
作者头像
莫空9081
修改于 2021-09-03 03:02:53
修改于 2021-09-03 03:02:53
2K0
举报
文章被收录于专栏:iOS 备忘录iOS 备忘录

iOS 15导航栏设置

背景

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

<!--more-->

修改

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

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

代码如下:

代码语言:txt
AI代码解释
复制
- (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];
}

参考

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
iOS-UINavigationBar 设置背景图片
1. 为 NavigationBar 设置背景图片(效果见下图): 导航栏设置背景图片效果对比图.png /// 统一设置导航栏外观 - (void)setNavigationBa
用户1890628
2018/05/10
2.4K0
iOS小技能:自定义导航栏,设置全局导航条外观
在开发需求时app中使用的导航条在一个模块的主题基本是一致的,因此可通过自定义导航条来进行统一控制。
玖柒的小窝
2021/11/02
2.7K0
iOS开发UINavigation系列一——导航栏UINavigtionBar
        在iOS开发中,我们通常会使用导航控制器,导航控制器中封装了一个UINavigationBar,实际上,我们也可以在不使用导航控制器的前提下,单独使用导航栏,在UINavigationBar中,也有许多我们可以定制的属性,用起来十分方便。
珲少
2018/08/15
1.3K0
iOS开发UINavigation系列一——导航栏UINavigtionBar
iOS状态栏设置
这两种方式是根据UIViewControllerBasedStatusBarAppearance也就是View controller-based status bar appearance的值的不同有相应的设置
码客说
2019/10/22
3.1K0
NavigationBar&tabBar调色那些事儿1. 导航栏调色那些事儿2. 标签栏TableBar那些事儿
Paste_Image.png 1. 导航栏调色那些事儿 小规律: 要设置内容,全找item 要修改颜色及文字属性,找bar 1.1 改变 NavigationBar 的背景颜色 [UINavigationBar appearance].barTintColor = [UIColor blueColor]; //如果使用的是backgroundColor,就会自带毛玻璃效果 self.navigationBar.backgroundColor = [UIcolor blueColor]; 1.2 改变 Na
stanbai
2018/06/28
1.7K0
iOS去除导航栏和tabbar的1px横线
1.在自己定义的导航栏中或者设计稿中经常需要去除导航栏的1px横线,主要是颜色太不协调了 去除之前的图片 要去除这1px的横线,首先应该知道它是什么,在Xcode的界面调试中可以看到,它其实是UIIm
傅_hc
2018/06/28
1.8K0
标签栏代码
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/48895625
用户1451823
2018/09/13
6020
iOS导航栏基础效果配置[通俗易懂]
若iOS7之后仍要使用第一种方法全局设置,则需要在plist文件中添加View controller-based status bar appearance 字段,值为NO ,意为不使用控制器管理状态栏。
全栈程序员站长
2022/07/21
1.8K0
调用 MFMessageComposeViewController UINavigationBar 高出一截
项目告一段落,总结一下项目中遇到的坑 使用 MFMessageComposeViewController 在程序内部发送短信,代码很简单 MFMessageComposeViewController * controller = [[MFMessageComposeViewController alloc] init]; controller.recipients = @[收件人手机号码1,收件人手机号码2,收件人手机号码3]; controller.body = 短信内容 controller.mess
GuangdongQi
2018/05/24
6120
UINavigationBar的用法
UINavigationBar是一个我们在开发中必定会碰到的控件,用好它能帮助我们自定义导航栏的样式,所以今天讲解一下UINavigationBar的用法。
Originalee
2018/08/30
2.2K0
iOS RunTime你知道了总得用一下
说点题外话: 我刚来现在这家公司的时候,老板让我下载一个脉脉,上去找找自己的同行,多认识些同行。其实初衷的好的,但最近这两天我把它卸载了,不为别的,负能量太多!iOS这行自从2016就没景气过,在这行混,这些自己也肯定都知道。但就是受不鸟铺天盖地的多久没找到工作,满大街都是iOS程序猿这些话题。看了也给我带不来任何的作用,你唯一能做的就是安安静静的做好自己该做的。自己入iOS这行也一年半过了,除去培训的那个几个月,真正摸爬滚打也一年多了,有时候想想,其实也没觉得有多差,以后怎样不知道,但至少现在,你有份工
Mr.RisingSun
2018/01/09
5910
iOS RunTime你知道了总得用一下
iOS开发知识点
莫空9081
2023/10/16
2320
iOS15适配
按照往年新系统发布的时间规律,新的系统预计在9月20日左右发布,目前beta版本已经更新到beta6。
冬冬吧
2021/08/24
2.5K0
iOS15适配
iOS各View的属性设置
UILabel UITableView 背景色 tableView.backgroundColor = UIColor(hexString: "#f3f3f3", alpha: 0.6); 分割线 tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine; 內边距 self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 64, 0); UITableViewCell 右侧标记 ce
码客说
2019/10/22
1.7K0
iOS状态栏设置
项目要把状态栏改成白色 我是在根NavigationConroller中这样写的。。。。OK,没问题 [[UINavigationBar appearance] setBarStyle:UIBarStyleBlack]; 但是发现四个子界面中有一个还是黑色。。。It's means 我没设置成功啊。。。。 这个页面我隐藏了系统的导航栏自己写了一个自定义的,这时候我让系统的显示,发现是白色。。。这时候我凌乱了,这是什么问题??? 后来感谢度娘。。。找到如下方法:
韦弦zhy
2018/09/11
1.3K0
UI篇-UINavigationController之易忘补充
[UIApplication sharedApplication].statusBarHidden = YES;
進无尽
2018/09/12
2.4K0
UI篇-UINavigationController之易忘补充
iOS系统中导航栏的转场解决方案与最佳实践
目前,开源社区和业界内已经存在一些 iOS 导航栏转场的解决方案,但对于历史包袱沉重的美团 App 而言,这些解决方案并不完美。有的方案不能满足复杂的页面跳转场景,有的方案迁移成本较大,为此我们提出了一套解决方案并开发了相应的转场库,目前该转场库已经成为美团点评多个 App 的基础组件之一。
美团技术团队
2019/03/22
2.7K0
iOS系统中导航栏的转场解决方案与最佳实践
导航栏的设置 背景 线
一、设置导航栏底线 简单获取底线 - (UIView *)navLine { if (!_navLine) { UIView *backgroundView = [self.navigationController.navigationBar subviews].firstObject; _navLine = backgroundView.subviews.firstObject; } return _navLine; } 2.单个页面
developerbfl
2018/06/05
1.5K0
iOS常用代码段
控制器中代码设置 > storybord设置 > 全局设置 优先级高的会覆盖优先级低的配置,比如storybord中的设置了navigationbar的样式 那么全局设置就不生效
码客说
2019/10/22
9250
iOS开发——UINavigationBar中踩过的坑
自从升级了Xcode8,以及在做iOS10的适配工作中,我发现在NavigationBar这个控件中,有了一个小小的坑。
Originalee
2018/08/30
1K0
相关推荐
iOS-UINavigationBar 设置背景图片
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档