Как установить цвет вида в соответствии с цветом полупрозрачной панели навигации? - PullRequest
0 голосов
/ 06 июня 2019

Мне нужно увеличить высоту панели навигации.Для этого я добавил вид (нужной высоты) под панелью навигации.Панель навигации установлена ​​на полупрозрачный .Таким образом, цвет навигационной панели немного отличается от фактического шестнадцатеричного значения.Теперь мне нужно сопоставить цвет панели навигации с представлением ниже.Ниже приведен код, который я использую.

func setupNavigationBar() {
    title = "Profile"

    self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: ""), for: .default)
    self.navigationController?.navigationBar.shadowImage = UIImage(named: "")

    headerView.backgroundColor = navigationController?.navigationBar.barTintColor
    headerView.isOpaque = false  
}

Я получаю различные оттенки, как показано ниже.

enter image description here

Как я могусделать цвет представления таким же, как цвет панели навигации?Я могу приблизиться к желаемому цвету, уменьшив альфа-представление вида, но я сомневаюсь в этом подходе, так как нет никакого стандарта, определенного для него.

PS Панель навигации должна оставаться полупрозрачной.

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Вам просто нужно установить opacity из headerView в 0.85

headerView.backgroundColor = navigationController?.navigationBar.barTintColor
headerView.layer.opacity = 0.85
headerView.isOpaque = false

Output

Образец кода можно скачать здесь :

Пожалуйста, игнорируйте другой неиспользуемый код в примере кода.

Пояснение:

Если вы установили стиль navigationController как translucent, тогда система автоматически примет непрозрачность слоя 0.85 для UINavigationController

Я лично проверяю это по iterating всем подпредставлениям UINavigationController.

0 голосов
/ 06 июня 2019

Установите цвет фона, чтобы очистить панель навигации, используя:

self.navigationController?.navigationBar.backgroundColor = UIColor.clear

Надеюсь, это поможет.

...