2016-11-28 3 views
0

Я сделал следующее, чтобы сделать навигационную панель просто белой.Прозрачная панель навигации (swift 3)

UINavigationBar.appearance().shadowImage = UIImage() 
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default) 

Таким образом, я устанавливаю каждый UIViewController на «не сверху/бот-бар». Это выглядит так, как я хочу. Но когда я делаю UIImagePicker, например, это выглядит следующим образом: navigation Bar

Так что я попытался следующие:

let imagePicker = UIImagePicker() 
imagePicker.edgesForExtendedLayout = [] 

Но он не работает. Как я должен это делать?

Добро пожаловать!

ответ

1

мне пришлось добавить:

UINavigationBar.appearance().isTranslucent = false 

в мою AppDelegate.

Благодарим Fonix и dfd

7

Разве панель навигации белый по умолчанию? как

UINavigationBar.appearance().shadowImage = UIImage() 
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default) 

Устанавливает фон для изображения без данных, поэтому он будет прозрачным. Если вам действительно нужно установить цвет навигационной панели, используйте

UINavigationBar.appearance().barTintColor = UIColor.white 

вместо установки фона на изображение. Вам может понадобиться

self.navigationController!.navigationBar.isTranslucent = false 

внутри viewDidLoad для каждого ViewController, но попробуйте без него первого

1

Попробуйте это в ваших AppDelegate didFinishLaunchingWithOptions:

UINavigationBar.appearance().barTintColor = UIColor.white 
UINavigationBar.appearance().isTranslucent = false 

// these next lines aren't needed if you like the default 

UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.black] // shouldn't be needed, but if you want something 
UINavigationBar.appearance().tintColor = UIColor.blue 

Я уверен, что вам нужно установить isTranslucent к ложному.

Смежные вопросы