问题描述
我正在我的 iOS 应用 (SwiftUI) 上使用 Apple 登录。
在 SwiftUI 中,我可以使用“SignInWithAppleButton”(https://morioh.com/p/524e0408008c),此按钮显示 Apple 标志和文本,可以是“Sign In with Apple”、“Sign Up with Apple”或“Continue with Apple”,具体取决于选择的按钮类型 (ASAuthorizationAppleIDButton.ButtonType)。
但是,我希望按钮的大小为 120x60(宽x高)。如果我只是调整这个按钮的大小,文本仍然可见并且显示的很小,Apple图标也调整了大小并且看不到,所以它不可用。我想仅显示 Apple 图标。设计指南 (https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple/overview/buttons/)
似乎允许如何在 SwiftUI 中执行此操作?我找不到使用 Apple 按钮实现自定义登录的示例。
感谢您的建议!
解决方法
您只会找到编程基本部分的示例代码。
如果您想自定义行为/外观,则必须创建自己的。我建议你从 init()
开始 SignInWithAppleButton
init(SignInWithAppleButton.Label,onRequest: (ASAuthorizationAppleIDRequest) -> Void,onCompletion: ((Result<ASAuthorization,Error>) -> Void))
然后创建一个使用该初始化程序的 View
和一个 ViewModel: ASAuthorizationControllerDelegate
。
onRequest
和 onCompletion
是功能块/完成处理程序,因此您需要 read up on those
所以当您handleAuthorizationAppleIDButtonPress
(添加到请求)以及您的ASAuthorizationControllerDelegate
返回.success
或.failure
时,您知道如何使用它们
您的 View
body
只需要一个 Button
来调用您的 handleAuthorizationAppleIDButtonPress()
中的ViewModel
(请参阅 Apple 的示例代码)
您可以在文档 Implementing User Authentication with Sign in with Apple
中找到 Apple 的示例代码Stackoverflow 不是代码编写服务,但当您有代码时,我们可以帮助您解决任何问题