关于将navigationBar的背景设置成透明,并且让navigationItem展示出来
2015-07-24 22:21
393 查看
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
//给navigationBar添加一个透明的背景图片
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"touming"] forBarMetrics:UIBarMetricsDefault];
//设置navigationBar的barstyle为黑色半透明;
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
//此时背景已经变成透明的了,但是在navigationbar的边缘有一条轮廓线,这条轮廓线实际上是苹果封装在navigationbar 里面的一个imageView,因此找到这个imageView并且把它移出或者隐藏,就可以实现真正的透明;
for (UIView * view in self.navigationController.navigationBar.subviews) {
if ([view isKindOfClass:[UIImageView class]]) {
view.hidden = YES;
}
}
}
//需要注意的是,若果将需要通过self.navigationController来push到另外一个界面的时候,这个时候我们需要在本页面将要消失的时候 将这个被隐藏的imageView显现,否则将会在跳转的时候崩溃;
添加如下-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
for (UIView * view in self.navigationController.navigationBar.subviews) {
if ([view isKindOfClass:[UIImageView class]]) {
view.hidden = NO;
}
}
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
}
{
[super viewWillAppear:animated];
//给navigationBar添加一个透明的背景图片
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"touming"] forBarMetrics:UIBarMetricsDefault];
//设置navigationBar的barstyle为黑色半透明;
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
//此时背景已经变成透明的了,但是在navigationbar的边缘有一条轮廓线,这条轮廓线实际上是苹果封装在navigationbar 里面的一个imageView,因此找到这个imageView并且把它移出或者隐藏,就可以实现真正的透明;
for (UIView * view in self.navigationController.navigationBar.subviews) {
if ([view isKindOfClass:[UIImageView class]]) {
view.hidden = YES;
}
}
}
//需要注意的是,若果将需要通过self.navigationController来push到另外一个界面的时候,这个时候我们需要在本页面将要消失的时候 将这个被隐藏的imageView显现,否则将会在跳转的时候崩溃;
添加如下-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
for (UIView * view in self.navigationController.navigationBar.subviews) {
if ([view isKindOfClass:[UIImageView class]]) {
view.hidden = NO;
}
}
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
}
相关文章推荐
- UINavgationBar之UIBarButtonItem
- UINavigationBar
- 修改UINavigationbar背景
- UIToolbar与UINavigationBar笔记
- iOS7 UINavigationBar设置白色但是出现半透明解决方法
- UINavigationBar 一些使用总结
- 自定义多视图
- 【iOS7】定制iOS 7中的导航栏和状态栏
- Objective-C ,ios,iphone开发基础:Category(分类,类别,范畴) ,UINavigationBar设置背景图片适配
- ios7 自定义UINavigationBar UIBarButtonItem 10px的偏移纠正
- iOS之UINavigationBar的使用
- 改变状态栏和导航栏的透明度
- UINavigation category 定制
- ios7适配 通知栏UINavigationBar遮挡view的问题
- IOS开发之UINavigationBar
- UINavigationbar/UINavigationItem/UITabBar/UITabButton/UITabBarItem粑粑粑粑~
- UINavigationBar
- iOS 7自定义导航栏状态栏
- 华山论剑 --- 自定义UINavigationBar背景方法汇总
- 自定义UINavigationController(导航控制器)