transparent navigation bar ios transparent navigation bar ios swift swift

transparent navigation bar ios


You can apply Navigation Bar Image like below for Translucent.

Objective-C:

[self.navigationController.navigationBar setBackgroundImage:[UIImage new]                     forBarMetrics:UIBarMetricsDefault]; //UIImageNamed:@"transparent.png"self.navigationController.navigationBar.shadowImage = [UIImage new];////UIImageNamed:@"transparent.png"self.navigationController.navigationBar.translucent = YES;self.navigationController.view.backgroundColor = [UIColor clearColor];

Swift 3:

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) //UIImage.init(named: "transparent.png")self.navigationController?.navigationBar.shadowImage = UIImage()self.navigationController?.navigationBar.isTranslucent = trueself.navigationController?.view.backgroundColor = .clear    


Swift Solution

This is the best way that I've found. You can just paste it into your appDelegate's didFinishLaunchingWithOptions method:

Swift 3 / 4

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {    // Override point for customization after application launch.    // Sets background to a blank/empty image    UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)    // Sets shadow (line below the bar) to a blank image    UINavigationBar.appearance().shadowImage = UIImage()    // Sets the translucent background color    UINavigationBar.appearance().backgroundColor = .clear    // Set translucent. (Default value is already true, so this can be removed if desired.)    UINavigationBar.appearance().isTranslucent = true    return true}

Swift 2.0

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {    // Override point for customization after application launch.    // Sets background to a blank/empty image    UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default)    // Sets shadow (line below the bar) to a blank image    UINavigationBar.appearance().shadowImage = UIImage()    // Sets the translucent background color    UINavigationBar.appearance().backgroundColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)    // Set translucent. (Default value is already true, so this can be removed if desired.)    UINavigationBar.appearance().translucent = true    return true}

source: Make navigation bar transparent regarding below image in iOS 8.1


Swift 5 applying only to the current view controller

override func viewWillAppear(_ animated: Bool) {    super.viewWillAppear(animated)    // Make the navigation bar background clear    navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)    navigationController?.navigationBar.shadowImage = UIImage()    navigationController?.navigationBar.isTranslucent = true}override func viewWillDisappear(_ animated: Bool) {    super.viewWillDisappear(animated)    // Restore the navigation bar to default    navigationController?.navigationBar.setBackgroundImage(nil, for: .default)    navigationController?.navigationBar.shadowImage = nil}