Изменить стиль кнопки «Войти через 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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