使用白色箭头图片设置UINavigationBar的leftBarButtonItem,但显示为蓝色
来源:互联网 发布:网络言论自由的例子 编辑:程序博客网 时间:2024/05/21 10:27
1.问题描述
1.1.运行环境
Xcode版本:7.3.1
Simulator版本:8.4 & 9.3
1.2.背景
在一个项目中,导航栏的背景色为蓝色,导航栏的返回按钮为白色。然后产品化提供了蓝色的rgb数值和白色返回按钮的切图。
因为直接设置导航栏的背景色有半透明效果,所以便创建了一个纯色图片设置了导航栏的背景图片。
[self.navigationController.navigationBar setBackgroundImage:colorImage forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
其中colorImage为纯色图片。
1.3.问题
但是运行之后发现,返回按钮的图片明明是白色的,但显示出来确成了蓝色的。
2.解决方法
2.1.思路
首先通过修改图片名称,排除了存在同名资源文件的可能。
然后修改了导航栏的底色,发现返回按钮的颜色是随着导航栏的底色变化的。
最后去看导航按钮的添加代码:
UIBarButtonItem *item = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"GDNavBar_Back"] style:UIBarButtonItemStylePlain target:self action:@selector(didBackButton)];
此处加载图片使用的是类似title的前景图片。类比一下title,UIBarButtonItem的title显示时是具有透明效果的,所以可能该前景图片也有透明效果。
但是UIBarButtonItem又不存在backgroundImage属性,所以只能通过customView进行展示。
UIButton* btn = [UIButton buttonWithType:UIButtonTypeCustom];btn.frame = CGRectMake(0, 0, 45, 40);[btn setImage:[UIImage imageNamed:@"GDNavBar_Back"] forState:UIControlStateNormal];[btn addTarget:self action:@selector(backToPrev) forControlEvents:UIControlEventTouchUpInside];self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btn];
使用该办法后,返回图片显示正常。
2.2.结论
使用UIBarButtonItem的customView属性定制按钮。
3.原因
如上所述,尽量使用customView来定制UIBarButtonItem。
0 0
- 使用白色箭头图片设置UINavigationBar的leftBarButtonItem,但显示为蓝色
- 按F11查询,显示为白色,而不是蓝色
- ios leftBarButtonItem 使用图片
- 已解决:使用alertDialog时设置复选框时,复选框看不见,显示为白色
- IOS中设置UINavigationBar的各种样式(图片/透明效果/下方内容显示情况)
- IOS中设置UINavigationBar的各种样式(图片/透明效果/下方内容显示情况)
- button上的图片显示蓝色
- 设置UINavigationBar为半透明
- UINavigationBar设置为透明
- 设置状态栏的文字为白色
- iOS 设置状态栏的字体为白色
- png图片半透明部分在网页中显示为白色的处理
- iOS7 UITabBar自定义选中图片显示为默认蓝色的Bug
- OS7 UITabBar自定义选中图片显示为默认蓝色的Bug
- iOS7 UITabBar自定义选中图片显示为默认蓝色的Bug
- iOS7修改UITabBar文本颜色以及解决自定义选中图片显示为默认蓝色的问题
- iOS7 UITabBar自定义选中图片显示为默认蓝色的Bug
- 解决UINavigationBar 的leftBarButtonItem点击范围过大问题
- Python核心编程(第十五章)--正则表达式
- centos7安装xrdp
- ffmpeg精简
- 算法系列(十)堆实现优先队列
- CoreData 使用
- 使用白色箭头图片设置UINavigationBar的leftBarButtonItem,但显示为蓝色
- [Docker]Docker镜像
- 阿里云 申请的 CA Wosin 证书 , 并在Windows iis下导入证书
- js中的 || 与 && 运算符
- 二进制小数
- FloatingActionButton
- lua源代码执行顺序
- 使用LaunchScreen.storyboard后,运行时显示老的图片
- MSVCR110.dll缺失