Изменить стиль кнопки «Войти через Apple» на основе текущей цветовой схемы.IOS

Программируем под IOS
Anonymous
Изменить стиль кнопки «Войти через Apple» на основе текущей цветовой схемы.

Сообщение Anonymous »

У меня возникли некоторые проблемы с SignInWithAppleButton SwiftUI SignInWithAppleButtonStyle. Я пытаюсь изменить цвет кнопки в зависимости от текущей схемы пользователя или если она изменится.
Это iOS 14 и SwiftUI:

Код: Выделить всё

@Environment(\.colorScheme) var currentScheme
@State var appleButtonWhite = false

VStack{
SignInWithAppleButton(
.signUp,
onRequest: { request in
request.requestedScopes = [.fullName, .email]
},
onCompletion: { result in
switch result {
case .success (let authResults):
print("Authorization successful.")

case .failure (let error):
print("Authorization failed: " + error.localizedDescription)
}
}
)
.frame(minWidth: 0, maxWidth: .infinity)
.signInWithAppleButtonStyle(appleButtonWhite ? .white : .black)
}
.onChange(of: currentScheme, perform: { (scheme) in
if scheme == .light
{
appleButtonWhite = false
}
else
{
appleButtonWhite = true
}
})
Когда appleButtonWhite меняет значения, представление отображается так, как должно, поскольку состояние меняется. Когда я отлаживаю кнопку, она имеет правильное значение appleButtonWhite, но по какой-то причине стиль никогда не меняется. Понятия не имею почему. Я внес много изменений в стиль своего кода с помощью обычных кнопок, и он работает правильно в зависимости от разных состояний. Есть идеи, почему Apple не меняется?

Подробнее здесь: https://stackoverflow.com/questions/654 ... lor-scheme

Вернуться в «IOS»