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

来源:互联网 发布:网络布线怎么收费 编辑:程序博客网 时间:2024/05/23 01:22

方法一

在当前页面加入下面方法

- (void)viewWillAppear:(BOOL)animated{

    [superviewWillAppear:animated];

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

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

    self.navigationController.navigationBar.shadowImage = [UIImage new];

}

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

- (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{

    [super viewWillDisappear:animated];

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

}



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

0 0