В своем приложении я использую
let navigationBar = UINavigationBar.appearance()
navigationBar.largeTitleTextAttributes = [
NSAttributedString.Key.font: UIFont.SFProDisplay(ofSize: 34, weight: .bold),
NSAttributedString.Key.foregroundColor: UIColor.custom
]
static var custom: UIColor {
return UIColor(named: "color_custom")!
}
где есть набор цветов color_custom
. Но при переключении между цветовыми режимами использовался только цвет Any Appearance. Темное оформление не используется. Почему?
ДОПОЛНЕНИЕ:
После некоторого исследования я решил, что это должно добавить к следующему вопросу: в моем приложении я использую переключатель для переключения между режимами. Storage.isDarkModeOn = newState // saving in user defaults
. Потом:
class PapaViewController: UIViewController {
if #available(iOS 13.0, *) {
overrideUserInterfaceStyle = Storage.isDarkModeOn ? .dark : .light
}
}
Где PapaViewController - родительский класс для всех UIViewController в моем приложении. Итак, если overrideUserInterfaceStyle == .dark
и цветовой режим устройства == .light
, ошибка обнаруживается. Если затем я изменю цветовой режим устройства на .dark
, то большой заголовок будет выглядеть так, как ожидалось.
appearance
? - person Mojtaba Hosseini   schedule 01.10.2019applicationDidFinishLaunching
. - person Nik Kov   schedule 02.10.2019UIFont.SFProDisplay
, но все остальное я могу просто скопировать и использовать напрямую, и большой заголовок изменит цвет, как и ожидалось. (Вместо этого я использовал шрифт Georgia.) - person matt   schedule 02.10.2019