Темный режим в SwiftUI Preview не имеет темного фона с Xcode 11.4 - PullRequest
1 голос
/ 29 марта 2020

У кого-нибудь есть такая же проблема, что Xcode (11.4) не показывает темный фон при предварительном просмотре в темном режиме?

Шаги для воспроизведения:

1) Создать новый проект, Single View App

2) Добавьте модификатор .environment к предварительному просмотру:

Group {
    ContentView()
        .environment(\.colorScheme, .light)
    ContentView()
        .environment(\.colorScheme, .dark)
}

Вы получите этот результат:

Xcode preview

1 Ответ

0 голосов
/ 29 марта 2020

попробуйте это:

@available(iOS 13.0, *)
public struct DarkView<Content> : View where Content : View {
    var darkContent: Content
    var on: Bool
    public init(_ on: Bool, @ViewBuilder content: () -> Content) {
        self.darkContent = content()
        self.on = on
    }

    public var body: some View {
        ZStack {
            if on {
                Spacer()
                    .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
                    .background(Color.black)
                    .edgesIgnoringSafeArea(.all)
                darkContent.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity).background(Color.black).colorScheme(.dark)
            } else {
                darkContent
            }
        }
    }
}

@available(iOS 13.0, *)
extension View {
    @available(iOS 13.0, *)
    public func darkModeFix(_ on: Bool = true) -> DarkView<Self> {
        DarkView(on) {
            self
        }
    }
}

, а затем

yourView()
.environment(\.colorScheme, .dark)
                    .darkModeFix()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...