当前位置: 首页 > news >正文

iOS开发-导航栏UINavigationBar隐藏底部线及透明度

iOS 导航栏UINavigationBar隐藏底部线及透明度

苹果官方给出的解释:
如果你不调用方法设置一张背景图片的话,那就给你默认一张,然后同时还有一张阴影图片被默认设置上去,这就是导航栏上1px黑线的由来。

解决办法:
方法1.就用上面说的那个方法,设置一张背景图片,然后在设置一张shadowImage就可以了:


self.navigationBar = [UINavigationBar appearanceWhenContainedIn:self, nil];
[self.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault]];
[self.navigationBar setShadowImage:[[UIImage alloc] init]]];

方法2:将UINavigationBar的clipsToBounds属性设成YES。

self.navigationBar = [UINavigationBar appearanceWhenContainedIn:self, nil];self.navigationBar.clipsToBounds=YES;//去掉导航条的半透明self.navigationBar.translucent = NO;

方法3:循环遍历一下UINavigationBar的所有子视图,发现有UIImageView类型的视图就remove掉,或者设成隐藏状态(hidden)。


- (void)setNavigationStyle {[self setBackgroundImage];UIColor *color = K_NAVBAR_ITEM;if (IS_IOS7_OR_LATER) {self.navigationBar.tintColor = color;self.navigationBar.barTintColor = color;} else {self.navigationBar.tintColor = color;}[self.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor colorWithHexString:@"ffffff"],NSFontAttributeName:[UIFont systemFontOfSize:18]}];
}- (void)setBackgroundImage {UIImage *placeholderImage = [UIImage imageWithColor:[UIColor colorWithHexString:@"3b93ff"] size:CGSizeMake(20.0, 20.0)];placeholderImage = [placeholderImage stretchableImageWithLeftCapWidth:placeholderImage.leftCapWidth*0.5 topCapHeight:placeholderImage.topCapHeight*0.5];if (IS_IOS7_OR_LATER) {[self.navigationBar setBackgroundImage:placeholderImage forBarPosition:UIBarPositionTop barMetrics:UIBarMetricsDefault];//iOS7 阴影需单独设定 UIColor clearColor 是去掉字段 1像素阴影][self.navigationBar setShadowImage:[UIImage imageWithColor:RGBA(37.0, 37.0, 37.0, 0.8) size:CGSizeMake(self.navigationBar.frame.size.width, 0.125)]];} else {[self.navigationBar setBackgroundImage:placeholderImage forBarMetrics:UIBarMetricsDefault];}self.navigationBar.translucent = NO;self.navigationBar.clipsToBounds=YES;
}

学习记录,每天不停进步。

http://www.lryc.cn/news/118256.html

相关文章:

  • 题目:2520.统计能整除数字的位数
  • matplotlib 笔记 注释annotate
  • Windows 无法安装到这个硬盘。选中的磁盘具有MBR分区。在EFI系统上,Windows只能安装到GPT磁盘
  • 学C的第三十三天【C语言文件操作】
  • 线性表的基本操作及在顺序存储及链式存储的实现
  • 合宙Air724UG LuatOS-Air script lib API--nvm
  • springboot单元测试的详细介绍
  • Apache Doris 入门教程26:资源管理
  • 【金融量化】Python实现根据收益率计算累计收益率并可视化
  • 解读spring中@Value 如何将配置转自定义的bean
  • 前端开发实习总结参考范文(合集)
  • ♥ vue中$forceUpdate()
  • Java一般用于postgis空间数据库通用的增删查改sql命令
  • 【C++类和对象】类有哪些默认成员函数呢?(上)
  • (docker)mysql镜像拉取-创建容器-容器的使用【个人笔记】
  • 【时间格式引发的事故】
  • 【数据结构】栈及其实现
  • Linux命令200例:mount将文件系统挂载到指定目录下(常用)
  • 互联网摸鱼日报(2023-08-11)
  • 第十五章、【Linux】例行性工作调度
  • 基于Promise.resolve实现Koa请求队列中间件
  • 【结构型设计模式】C#设计模式之桥接模式
  • 【12】Git工具 协同工作平台使用教程 Gitee使用指南 腾讯工蜂使用指南【Gitee】【腾讯工蜂】【Git】
  • zookeeper增加IP白名单-安全设置
  • Mac 调试 ios safar
  • Linu网络服务NFS
  • 24届近5年同济大学自动化考研院校分析
  • 多源BFS
  • 自制电子农历
  • 解决nvm安装后,node生效但npm无效