您的位置:首页 > 产品设计 > UI/UE

关于将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];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uinavigationbar