【发布时间】:2020-02-20 08:32:38
【问题描述】:
我已经尝试过了,但我不知道如何在 SwiftUI 视图中使用结果:
func getProfilePicture(_ completion: @escaping ((UIImage) -> Void)) {
Alamofire.request(GIDSignIn.sharedInstance()?.currentUser.profile.imageURL(withDimension: 75) ?? "https://httpbin.org/image/png").responseImage { response in
if let image = response.result.value {
completion(image)
}
}
}
如果你能帮忙,我想把完成处理程序返回的图像放在这个视图中:
struct ProfileView: View {
let profileInfo = ProfileInfo()
var placeHolderImage = Image(systemName: "person")
var body: some View {
Group {
placeHolderImage
.clipShape(Circle())
.overlay(
Circle().stroke(Color.white, lineWidth: 4))
.shadow(radius: 10)
.padding(10)
}
}
}
我希望它返回一个 UIImage,以便我最终可以在 SwiftUI 视图中使用它。我已经尝试过使用带有@escaping 完成处理程序的方法,但我不知道如何使用它来解决问题。谢谢!
【问题讨论】:
-
在
return image所在的行放置一个断点。这是什么? -
@Adrian 你是什么意思?
-
看看这个:youtube.com/watch?v=mgspBMsWlS4。类型。
po image在你抛出一个断点之后看看它是什么。 -
另外,看看这篇文章中的
struct ImageProvider: RequestImages部分。 medium.com/better-programming/… -
我认为您应该接受答案并提出另一个问题。您扩大了原始问题的范围。 TBQH,我没怎么玩过 SwiftUI,所以那里没有权威的答案。
标签: swift swiftui swift5 completionhandler