iOS开发技巧
来源:互联网 发布:淘宝拆分订单付款 编辑:程序博客网 时间:2024/06/17 05:28
在以前,我们可以通过当前控制器的导航控制器再获取到navigatioBar导航条,修改导航条的barTintColor这个属性去修改它的透明度,如:
self.navigationController.navigationBar.barTintColor = [UIColor colorWithWhite:1.0 alpha:0.5];
但如果是沉浸式背景,那么状态栏statusBar的白色/黑色背景又会和导航栏出现颜色不同,因此我们还得同时修改statusBar的背景颜色,如:
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"]; if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) { statusBar.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.5]; }
也可以给导航栏直接设置一个半透明的背景图片,通过color生成半透明图,这个网上很多分类,就不介绍了。
下面才是重点啊喂~!
在iOS10之后,navigationBar的barTintColor方法设置一个半透明颜色不起作用了!
取巧可以用另外一种设置方式:
[[[self.navigationController.navigationBar subviews] objectAtIndex:0] setAlpha:0.5]; //找到navigationBar的背景view,然后设置alpha值,这样会连statusBar背景一并修改了
PS:如果不起作用 或者 别的控制器将导航栏上面的东西改了回去…
我们可能需要设置下面两个参数,在viewWillAppear方法中加上这两行代码,再结合上面的方法修改透明度。
self.navigationController.navigationBar.translucent = YES; // 设置导航栏为有点透明的效果(系统给的),注意如果设置了这个参数,控制器中有scrollView的可能会向上偏移64px,也就是回到默认会被导航栏遮住的位置self.navigationController.navigationBar.backgroundColor = [UIColor clearColor];// 将导航条背景改为透明
效果如下:
阅读全文
0 0
- iOS开发技巧积累
- iOS 开发技巧1
- iOS 开发技巧2
- iOS开发技巧3
- iOS开发技巧4
- iOS开发技巧7
- iOS开发技巧8
- iOS开发技巧9
- iOS开发技巧10
- iOS开发技巧
- iOS开发技巧
- iOS开发技巧12
- iOS开发技巧14
- iOS开发技巧17
- iOS开发 小技巧
- ios开发技巧
- IOS开发技巧
- iOS 开发小技巧
- 多线程——同步函数
- ZOJ1203(最小生成树kruskal算法)Swordfish
- 【Ubuntu】将新的分区挂载到home目录
- Cocos2D入门
- poj2186 Popular Cows【强连通】
- iOS开发技巧
- 欢迎使用CSDN-markdown编辑器
- PostgreSQL on Ubuntu 14.04
- Hibernate如何配置实体类到数据库表的映射
- 【Redis】redis的AOF
- java web工程web.xml配置详解
- Hibernate的基础使用
- 【每日算法】快速排序
- 死锁及如何避免死锁