Сделать прозрачным navigation bar и status bar

statusbar
swift
xcode
navigationbar
ios

#1

Как сделать прозрачным navigation bar и status bar так, чтобы можно было под них вставить изображение?
Вот пример:


#2

Для navigation bar:

self.navigationController.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
self.navigationController.navigationBar.shadowImage = UIImage()
self.navigationController.navigationBar.translucent = true
self.navigationController.view.backgroundColor = UIColor.clearColor()

Для статус бара:

    UITabBar.appearance().barTintColor = UIColor.clearColor()
    UITabBar.appearance().backgroundImage = UIImage()

#3

Да, но остается пустое место на месте navigation bar, при прокручивании видно, что оно прозрачно. Я уже выставил констрейнту top - 65, но ничего не меняется :frowning:


#4

Не совсем понимаю, что у Вас не работает.
navigation bar просто стал прозрачным, если он Вам просто не нужен, не используйте его.
Если Вам нужно чтобы изображение было видно за статус баром, то просто поставьте UIImageView и растяните по величине экрана, ну и соответственно просто разместите в нем изображение.


#5

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

Возможно, это из-за того что у меня SplitView. На iPhone вообще не делается прозрачным.
UIImageVIew растянут до самого верха.


#6

Проверил в другом проекте, где обычный переход - работает.
Со SplitViewController остается пустое пространство :frowning:


#7

А как Вы определяете, что оно пустое?
Я думаю, что у Вас просто ничего не видно на белом фоне.

  • растяните Вашу карту до самого верха.

#8

С iPad справился, там теперь все ок. Но на iPhone проблема остается.
Вот тут мой проект: https://yadi.sk/d/3abttHOKnDi5M2

Когда перехожу в детальный вид ячейки таблицы navigation bar не становится прозрачным, а наследует параметры из родительского окна :frowning:


#9

По ссылке ничего не найдено.


#10

Сорри: https://yadi.sk/d/3abttHOKnDi5M


#11

На stack тоже такой вопрос задают:

Без ответа


#12

Когда я Вам отправлял решение я пробовал на iPhone, фона не было. Попробуйте сделать с нуля и прописать только для iPhone и только для navigation bar.


#13

Сделать прозрачным MasterViewController И DetailsViewController - не проблема. С помощью вышеуказанного кода это получается легко. Но вот сделать прозрачным бар только в Details - не получается. Я уже пытался и сабкласс писать, вызывая только в Details, и убирать бар совсем - тоже нулевой эффект. Проблема никак не решается и то что ответа нет даже на stack тому подтверждение.


#14

Значит мало кто сталкивался. Я постараюсь, как немного освобожусь, покопаться в коде.
Вы можете еще раз точно сказать, что именно у Вас не получается, чтобы не блуждать в предположениях :slight_smile:


#15

Какое отношение изменение цвета в таб баре имеет к статус бару?


#17

Да, в детальном виде в SplitView на iPhone navBar не становится прозрачным.

Вот ссылка на проект: https://yadi.sk/d/3abttHOKnDi5M


#18

Для тех, кто не нашел. Вот решение -

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true

#19

Есть как раз видео по этой теме у нас на канале: