#ios #swift #ios14 #uiappearance
Вопрос:
Когда я использую это:
UINavigationBar.appearance().backgroundColor = UIColor(named: "brown")
Я получаю навигационную панель, которая имеет правильный коричневый цвет и полупрозрачна.
Но я не хочу, чтобы он был полупрозрачным, я просто хочу, чтобы он был моего коричневого цвета. Итак, я добавляю еще одну строку кода, чтобы изменить внешний вид, чтобы отключить прозрачность, и вместо того, чтобы получить сплошной коричневый цвет, он просто дает мне белый цвет по умолчанию.
UINavigationBar.appearance().backgroundColor = UIColor(named: "brown")
UINavigationBar.appearance().isTranslucent = false
Что я делаю не так?
Ответ №1:
Ты совершенно не на то дерево лаешь. Оставь isTranslucent
в покое! Не устанавливайте никаких свойств панели навигации напрямую! Используйте UINavigationBarAppearance для выполнения настройки. Например:
let app = UINavigationBarAppearance()
app.configureWithOpaqueBackground()
app.backgroundColor = .brown
UINavigationBar.appearance().standardAppearance = app
UINavigationBar.appearance().scrollEdgeAppearance = app
Комментарии:
1. Ах, эта новая вещь была добавлена в iOS 13, и я этого не осознавал. Спасибо!
2. Увидеть мой biteinteractive.com/the-ios-developers-guide-to-ios14 вот список вещей, которые вы, возможно, пропустили.
Ответ №2:
Вы можете подать заявку:
UINavigationBar.appearance().barTintColor = UIColor(named: "brown")
Я думаю backgroundColor
, что в данном случае одних изменений недостаточно.