Przycisk macOS SwiftUI kolor pierwszego planu zmienia się po zmianie wyglądu ciemny/jasny

0

Pytanie

Więc uruchamiam poniższy kod na placu zabaw i widzę 2 przyciski, gdy pojawi się światło, a następnie przechodzę w tryb ciemny. Oba przyciski aktualizują kolor pierwszego planu w ramach SwiftUI do nie do końca biały. Następnie naciskam jeden przycisk, kolor pierwszego planu na drugi przycisk(przyciski) zmienia się na szary. Zobacz film dołączony poniżej. Korzystanie Z Xcode 13.1


import SwiftUI
import PlaygroundSupport

struct ContentView: View {
    var body: some View {
        VStack {
            HStack {
                Text("Current")
                    .font(.subheadline)
                    .fontWeight(.semibold)
                    .foregroundColor(.gray)
                    .frame(maxWidth: .infinity, alignment: .leading)
                Label("43.672490, -79.388932", systemImage: "location")
                    .frame(width: 175, alignment: .trailing)
            }
            HStack {
                Button {} label: {
                    Text("
button swiftui
2021-11-22 22:03:17
1

Najlepsza odpowiedź

0

Kolor pierwszego planu, naprawdę wydaje się być prawidłowo skonfigurowany między jasnymi i ciemnymi elementami trybami. Niemniej jednak, udało mi się naprawić to za pomocą kolor, który bierze pod uwagę różne wyglądy, dodając go jako .foregroundColor() na przyciskach:

struct ContentView: View {
    let buttonTextColor = Color(.secondaryLabelColor)
    var body: some View {
        VStack {
            HStack {
                Text("Current")
                    .font(.subheadline)
                    .fontWeight(.semibold)
                    .foregroundColor(.gray)
                    .frame(maxWidth: .infinity, alignment: .leading)
                Label("43.672490, -79.388932", systemImage: "location")
                    .frame(width: 175, alignment: .trailing)
            }
            HStack {
                Button {} label: {
                    Text("
2021-11-27 23:12:51

To może być tak, jak próbuję odtworzyć, ale nie widzę takiego zachowania w macOS Monterey 12.0.1, co by to nie kosztowało.
Charles A.

Ale aktualizuje czy on onTap. W ten sposób, w jasnym trybie kolor etykiety na pierwszym planie czarny, a w trybie onTap staje się biały, a w ciemnym trybie kolor etykiety na pierwszym planie nie jest biały, a w trybie onTap on nie jest biały. Wspomniane wyżej.Rozwiązanie forgroundColor nie uwzględnia zmiany onTap. Aby spróbować różnicę, przejdź do zakładki "System" > "prywatność i Bezpieczeństwo", kliknij na ikonę blokady (na dole po lewej) i obserwować zachowanie przycisku "Anuluj". Dziękuję!
swifty-george

Odpowiedź zaktualizowany.
Yrb

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................