自定义的导航控制中设置保留系统默认的透明传统效果
来源:互联网 发布:mysql 渗透 编辑:程序博客网 时间:2024/05/18 04:57
#import "MyNavigationController.h"@interface MyNavigationController ()@end@implementation MyNavigationController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view.}+(void)initialize{ // 1.获得bar对象 UINavigationBar *navBar = [UINavigationBar appearance]; // 2.1.设置bar背景 // 设置导航栏背景图片// [navBar setBackgroundImage:[UIImage imageNamed:@"viewBg"] forBarMetrics:UIBarMetricsDefault]; // 设置导航栏背景色 [navBar setBarTintColor:[UIColor orangeColor]]; // 要保持默认的透明传统效果,需要设置下面2个方法 [navBar setTranslucent:YES]; [navBar setShadowImage:[[UIImage alloc] init]]; // 这个方法可以不写 [navBar setBackgroundColor:[UIColor clearColor]]; }@end
延伸阅读:
以前一直没用过带透明的导航栏图片,现在项目要用到这样的。以为放上图片就是自动透明了
可是,发现透明那部竟然是黑的。无论怎么clearcolor 都不行。百度了很多页也没有查到可以用的方法。
最后在http://stackoverflow.com 找到一个关键点 :
viewDidLoad
。导航自定义图片设置这里也顺便贴出来吧
- (void) setNavBarImg:(UINavigationBar *)navBar{#define kSCNavBarImageTag 10 if ([navBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]) { //if iOS 5.0 and later [navBar setBackgroundImage:ThemeImageName(@"bg_nav@2x") forBarMetrics:UIBarMetricsDefault]; } else { UIImageView *imageView = (UIImageView *)[navBar viewWithTag:kSCNavBarImageTag]; [imageView setBackgroundColor:ClearColor]; if (imageView == nil) { imageView = [[UIImageView alloc] initWithImage: ThemeImageName(@"bg_nav@2x")]; [imageView setTag:kSCNavBarImageTag]; [navBar insertSubview:imageView atIndex:0]; } }}
如果你的图片是有透明的。如果你在百度里搜。那你真的要搜死了。。
方法:
[self.navigationController.navigationBar setTranslucent:YES];// 为什么要加这个呢,shadowImage 是在ios6.0以后才可用的。但是发现5.0也可以用。不过如果你不判断有没有这个方法,// 而直接去调用可能会crash,所以判断下。作用:如果你设置了上面那句话,你会发现是透明了。但是会有一个阴影在,下面的方法就是去阴影 if ([self.navigationController.navigationBar respondsToSelector:@selector(shadowImage)]) { [self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]]; }// 以上面4句是必须的,但是习惯还是加了下面这句话 [self.navigationController.navigationBar setBackgroundColor:ClearColor];
0 0
- 自定义的导航控制中设置保留系统默认的透明传统效果
- IOS-56-UIWebview浏览器中自定义底部导航栏透明效果的实现
- 设置phoneGap生成的安卓项目手机状态栏透明效果,导航栏透明效果
- 设置透明的导航栏
- 设置flash透明的效果
- iOS 开发导航条的透明设置
- 根视图导航栏透明效果,跳转的页面取消导航栏透明效果
- 设置导航栏全透明效果
- 导航栏设置透明磨砂效果
- Android对话框的自定义及透明效果
- Android对话框的自定义及透明效果
- 自定义导航栏--将NavigationBar设置透明
- Activity 透明,半透明效果的设置transparent
- Activity 透明,半透明效果的设置transparent
- ios开发 自定义带弧度的UITabBar,保留系统原有push和pop过渡效果
- iOS 导航条透明(以及自定义颜色)的方法,去掉导航条底部黑线,随着tableView滚动设置导航条变色
- 自定义导航控制器的滑动返回效果
- 自定义的activity设置为透明色
- linux centos 永久关闭防火墙
- 病毒基础-代码初识天地现
- layoutSubviews
- @Font-face的基本用法及让全部浏览器都兼容的方法
- 表达式求值 35
- 自定义的导航控制中设置保留系统默认的透明传统效果
- 最基本的linux线程编写和锁的使用
- 程序自删除的一种实现方式2
- Android 的蓝牙简介
- 各种排序算法时间复杂度和空间复杂度表
- RecycleView添加header和footer
- poj3252 Round Numbers (数位dp)
- cf#344-C - Report-贪心/单调栈
- CString成员函数用法大全