SwiftUI: preferredColorScheme не изменяет стиль строки состояния

#swiftui

#swiftui

Вопрос:

Например, если устройство находится в темном режиме, и я установил цветовую схему на светлую с помощью приведенного ниже кода, строка состояния невидима, потому что она по-прежнему белая и не будет обновляться, пока я не сделаю что-то вроде вызова клавиатуры или запуска таблицы действий.

 struct ContentView: View {
    var body: some View {
        Text("Hello, world!")
        .preferredColorScheme(.light)
    }
}
 

Это каким-то образом работает на моем iPad, но не на моем iPhone или любом из симуляторов. И я не смог найти способ изменить стиль строки состояния с помощью жизненного цикла приложения SwiftUI.

Я что-то здесь упускаю? У кого-нибудь есть решение для этого?

Скриншот строки состояния не виден

Комментарии:

1. Я думаю, что это ошибка!

2. Я не уверен, как это повторить. Я использовал ваш код с .preferredColorScheme(.light) , и он не похож на прикрепленное изображение, в котором используется темная цветовая схема. Единственное, что заметно, это то, что при запуске приложения строка состояния не отображается из-за белого на белом.

3. Извините, я загрузил неправильный скриншот, который использовал светлый внешний вид, и .perferredColorScheme(.dark) , но это та же проблема, строка состояния не видна. Я отредактировал вопрос с помощью правильного скриншота.

4. Является ли contentView самым внешним видом вашего приложения? Если он содержится в другом представлении, это представление, вероятно, должно иметь модификатор.

5. Должна быть ошибка. Я попытался добавить новый симулятор, и, похоже, проблем нет. Но эта проблема все еще существует на моем телефоне и некоторых симуляторах.

Ответ №1:

Попробуйте вместо этого использовать модификатор среды

 .environment(.colorScheme, .light)