Я установил панель навигации с Preferslargetitles = true. Почему-то пропадает цвет и нижняя граница и она белая. Как я могу сохранить цвет и границу этого, если он стандартный?
Вот как это выглядит с большими заголовками:
Я хотел бы иметь тот же цвет и границу, что и в этом:
Я уже пытался установить цвет фона, но граница по-прежнему отсутствует, а строка состояния другого цвета.
navigationController?.navigationBar.backgroundColor = UIColor(displayP3Red: 248/255, green: 248/255, blue: 248/255, alpha: 1)
Я получил это, чтобы работать сейчас. Если у кого-то есть такая же проблема, это можно сделать с помощью этого кода:
if #available(iOS 13.0, *) {
let appearance = UINavigationBarAppearance()
appearance.backgroundColor = UIColor(displayP3Red: 248/255, green: 248/255, blue: 248/255, alpha: 1)
appearance.titleTextAttributes = [.foregroundColor: UIColor.black]
appearance.largeTitleTextAttributes = [.foregroundColor: UIColor.black]
UINavigationBar.appearance().tintColor = .systemBlue
UINavigationBar.appearance().standardAppearance = appearance
UINavigationBar.appearance().compactAppearance = appearance
UINavigationBar.appearance().scrollEdgeAppearance = appearance
} else {
UINavigationBar.appearance().tintColor = .systemBlue
UINavigationBar.appearance().barTintColor = UIColor(displayP3Red: 248/255, green: 248/255, blue: 248/255, alpha: 1)
UINavigationBar.appearance().isTranslucent = false
}
Вам нужно поместить это в
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {}
в противном случае первый контроллер представления не имеет этих изменений, потому что первое представление уже загружено.
Спасибо @Sebastion, который опубликовал что-то похожее в этом посте: Панель навигации iOS13, большие заголовки, не закрывающие строку состояния