【转】 iOS 设置导航透明的两种方法

2017-03-22  本文已影响27人  西江月

方法一

在当前页面加入下面方法

- (void)viewWillAppear:(BOOL)animated{

[superviewWillAppear:animated];

[self.navigationController.navigationBarsetBackgroundImage:[UIImagenew]forBarMetrics:UIBarMetricsDefault];

//去掉导航栏底部的黑线

self.navigationController.navigationBar.shadowImage= [UIImagenew];

}

如果仅设置当前页导航透明,需加入下面方法

- (void)viewWillDisappear:(BOOL)animated{

[superviewWillDisappear:animated];

[self.navigationController.navigationBarsetBackgroundImage:nilforBarMetrics:UIBarMetricsDefault];

[self.navigationController.navigationBarsetShadowImage:nil];

}

需要注意的是:如果返回上一页的操作有动画,则在上一页出现的时候,导航栏的颜色会逐渐变化

方法二

- (void)viewWillAppear:(BOOL)animated{

[superviewWillAppear:animated];

[[self.navigationController.navigationBarsubviews]objectAtIndex:0].alpha=0;

}

仅设置当前页面

- (void)viewWillDisappear:(BOOL)animated{

[superviewWillDisappear:animated];

[[self.navigationController.navigationBarsubviews]objectAtIndex:0].alpha=1;

}

个人感觉:方法二比方法一更为简单,而且效果也好

原文:http://blog.csdn.net/j_r_k/article/details/52806702

上一篇下一篇

猜你喜欢

热点阅读