How do you color/customize the UIImagePickerController's Navigation Bar?

Frederick C. Lee picture Frederick C. Lee · Nov 27, 2014 · Viewed 17.1k times · Source

What is the correct way to color the UIImagePickerController's nav bar?
I merely tried to see the background color but I'm getting a faded color as seen in the image below; as if some view is obstructing it.

let picker = UIImagePickerController()
picker.sourceType = type
picker.mediaTypes = [kUTTypeImage]
picker.delegate = self
picker.navigationBar.backgroundColor = UIColor.redColor()

enter image description here

It appears to have some view obscuring the redColor():

(lldb) po picker.navigationBar.subviews
2 values
 {
  [0] = 0x00007fe7bb52a890
  [1] = 0x00007fe7bb52b670
}

What is the correct way to create a solid color for the Navigation Bar?

Answer

Michal picture Michal · Aug 14, 2015

Updated for Swift 4.2

For completeness, I'll add full color customization setup:

let imagePicker = UIImagePickerController()
imagePicker.navigationBar.isTranslucent = false
imagePicker.navigationBar.barTintColor = .blue // Background color
imagePicker.navigationBar.tintColor = .white // Cancel button ~ any UITabBarButton items
imagePicker.navigationBar.titleTextAttributes = [
        NSAttributedString.Key.foregroundColor: UIColor.white
] // Title color

which results in:

enter image description here