繁体   English   中英

白色或浅色 ASAuthorizationAppleIDButton “使用 Apple 登录”按钮 - Swift

[英]white or light ASAuthorizationAppleIDButton “Sign in with Apple” button - Swift

我正在实施 ASAuthorizationAppleIDButton - 根据 Apple 的要求 - 但不幸的是,我的登录背景是深色的,我无法找到如何将按钮颜色更改为浅色或白色按钮,就像 Apple 在他们的许多示例中展示的那样?

这就是我所拥有的:

let appleButton = ASAuthorizationAppleIDButton()

override func viewDidLoad() {
    super.viewDidLoad()       
    setAppleButtonStyle()
}

func setAppleButtonStyle() {
    if #available(iOS 13.0, *) {
        appleButton.translatesAutoresizingMaskIntoConstraints = false

        view.addSubview(appleButton)
        NSLayoutConstraint.activate([
            appleButton.centerYAnchor.constraint(equalTo: facebookLoginView.centerYAnchor, constant: -70),
            appleButton.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16),
            appleButton.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16),
            appleButton.heightAnchor.constraint(equalToConstant: 50)
        ])
    } else {
        //Do Nothing
    }

}

只需在实例化按钮实例时提供所需的style

例如

let appleButton = ASAuthorizationAppleIDButton(type: .default, style: .white)

如果您使用的是 Objective-C,这将是您将使用的:

 ASAuthorizationAppleIDButton *appleIDButton = [ASAuthorizationAppleIDButton buttonWithType:ASAuthorizationAppleIDButtonTypeContinue style:ASAuthorizationAppleIDButtonStyleBlack];

Swift 5.0 和 SwiftUI,自动调整到暗模式

import SwiftUI
import AuthenticationServices

final class AppleSignInButton: UIViewRepresentable {
  @Environment(\.colorScheme) var colorScheme
  
  func makeUIView(context: Context) -> ASAuthorizationAppleIDButton {
    return ASAuthorizationAppleIDButton(type: .default, style: colorScheme == .dark ? .white : .black)
  }
  func updateUIView(_ uiView: ASAuthorizationAppleIDButton, context: Context) {
  }
}

用法:

AppleSignInButton()
  .frame(width: 300, height: 56) // You can change these values
  .onTapGesture {
    // Do log in stuff
  }

暗模式支持的自动风格:

let button: ASAuthorizationAppleIDButton = ASAuthorizationAppleIDButton(
    authorizationButtonType: .default,
    authorizationButtonStyle: UITraitCollection.current.userInterfaceStyle == .dark ? .white : .black
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM