Сделать панель навигации прозрачной относительно изображения ниже в iOS 8.1

Я пытаюсь сделать свою панель навигации прозрачной относительно изображения ниже этого, что-то вроде следующего изображения:

введите здесь описание изображения

Я попробовал решение в прозрачной панели навигации ios, но не получил вышеуказанного результата, я получить только значок слева, но без цвета на панели навигации, полностью прозрачный. Но если я установлю цвет фона, прозрачность вообще исчезнет.

Есть ли способ установить цвет в панели навигации и сделать ее прозрачной??

Заранее спасибо.


person Victor Sigler    schedule 30.12.2014    source источник


Ответы (4)


только что проверил на симуляторе 8.1 и получил очень похожий результат на вашу картинку

    let bar:UINavigationBar! =  self.navigationController?.navigationBar

    bar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
    bar.shadowImage = UIImage()
    bar.backgroundColor = UIColor(red: 0.0, green: 0.3, blue: 0.5, alpha: 0.3)

главное здесь цвет фона с альфой.

Посмотрите прикрепленное изображение, может я что-то пропустил?

введите здесь описание изображения

person sage444    schedule 05.01.2015
comment
Я не уверен, что понял ваш вопрос, вы спрашивали об Альфе Шанель цвета? - person sage444; 05.01.2015
comment
Спасибо @sage44, не беспокойтесь об этом. - person Victor Sigler; 05.01.2015

Чтобы задать этот стиль глобально, используйте API-интерфейсы UIAppearance. В AppDelegate application:didFinishLaunchingWithOptions: добавьте следующий код:

// 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.3, blue: 0.5, alpha: 0.3)
// Set translucent. (Default value is already true, so this can be removed if desired.)
UINavigationBar.appearance().translucent = true
person nickgraef    schedule 05.01.2015
comment
Благодарю вас! Это правильный ответ. Другие ответы, должно быть, не были проверены в последнее время. - person Michael; 28.07.2015

Вы пытались установить альфа-свойство navigationBar? В вашем корневом контроллере представления к контроллеру навигации...

[self.navigationController.navigationBar setBackgroundColor:[UIColor greenColor]];
[self.navigationController.navigationBar setAlpha:0.3f];
person timgcarlson    schedule 05.01.2015
comment
когда вы устанавливаете альфу для просмотра, она также применяется к подвидам? - person sage444; 05.01.2015
comment
Я считаю, что да, поэтому вы можете установить непрозрачный цвет фона с помощью [self.navigationController.navigationBar setBackgroundColor:[UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:0.5]]; - person timgcarlson; 05.01.2015
comment
Я считаю, что альфа-значение цвета фона не совпадает с альфа-свойством UIView, но вы можете проверить;) - person sage444; 05.01.2015

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

Если приведенный выше код не работает, установите для EdgeForExtendedLayout значение all.

self.edgesForExtendedLayout = .all
person Sridhara Shetty    schedule 03.12.2018