2

我正在我的 iOS 应用程序 (SwiftUI) 上实现 Sign In with Apple。

在 SwiftUI 中,我可以使用“SignInWithAppleButton”(https://morioh.com/p/524e0408008c),此按钮显示 Apple 徽标和可以是“Sign In with Apple”、“Sign Up with Apple”或“继续使用 Apple”,具体取决于所选的按钮类型 (ASAuthorizationAppleIDButton.ButtonType)。

但是,我希望按钮的大小为 120x60 (WxH)。如果我只是调整这个按钮的大小,文本仍然可见并且显示非常小,苹果图标也调整大小并且看不到,所以它不可用。我只想显示Apple 图标。设计指南似乎允许(https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple/overview/buttons/

如何在 SwiftUI 中做到这一点?我找不到使用 Apple 按钮实现自定义登录的示例。

感谢您的建议!

4

1 回答 1

0

您只会找到编程基本部分的示例代码。

如果您想自定义行为/外观,则必须创建自己的。我建议你从init()forSignInWithAppleButton

init(SignInWithAppleButton.Label, onRequest: (ASAuthorizationAppleIDRequest) -> Void, onCompletion: ((Result<ASAuthorization, Error>) -> Void))

然后制作使用该初始化程序的 aView和 a 。ViewModel: ASAuthorizationControllerDelegate

onRequest并且onCompletion是功能块/完成处理程序,因此您需要阅读这些

因此,您知道如何在您handleAuthorizationAppleIDButtonPress(添加到请求)以及ASAuthorizationControllerDelegate退货.success或退货时使用它们.failure

View body只需要一个Button调用handleAuthorizationAppleIDButtonPress()你的ViewModel(参见 Apple 的示例代码)

您可以在使用 Apple 登录实现用户身份验证的文档中找到 Apple 的示例代码

Stackoverflow 不是代码编写服务,但是当您有代码时,我们可以帮助您解决任何问题

于 2021-01-20T16:50:42.327 回答