Search code examples
cocoa-touchuinavigationbartransparencytranslucency

How to make completely transparent navigation bar in iOS 7


I want the UINavigationBar in my app to be completely transparent and flush with the viewcontroller directly under it. However, the only code I could find makes it translucent but not transparent. I know this can be done in iOS 7 because it is used in the notes app. My question is, what is the code they used to do it?


Solution

  • From this answer

    [self.navigationController.navigationBar setBackgroundImage:[UIImage new]
                         forBarMetrics:UIBarMetricsDefault];
    self.navigationController.navigationBar.shadowImage = [UIImage new];
    self.navigationController.navigationBar.translucent = YES;
    self.navigationController.view.backgroundColor = [UIColor clearColor];
    self.navigationController.navigationBar.backgroundColor = [UIColor clearColor];
    

    Also, as suggested by Josh in the comments, to put the bar back to default:

    [self.navigationController.navigationBar setBackgroundImage:nil
                         forBarMetrics:UIBarMetricsDefault];