gpt4 book ai didi

ios - 如何更快地加载用户的个人资料照片(Firebase,swift)

转载 作者:行者123 更新时间:2023-11-28 15:11:45 26 4
gpt4 key购买 nike

我在 ProfileViewController 的 viewDidLoad 中有这个

 self.user = Auth.auth().currentUser
self.databaseRef.child("user_profiles").child(self.user!.uid).observeSingleEvent(of: .value) { (snapshot:DataSnapshot) in

let snapshotValue = snapshot.value as? NSDictionary


if(snapshotValue?["about"] != nil)
{

}

if(snapshotValue?["profile_pic"] != nil)
{
let databaseProfilePic = snapshotValue!["profile_pic"]
as! String

let data = try? Data(contentsOf: URL(string: databaseProfilePic)!)

self.setProfilePicture(imageView: self.profilePic,imageToSet: UIImage (data:(data!))!)
}

还有这个功能

 internal func setProfilePicture(imageView:UIImageView,imageToSet:UIImage)
{

imageView.layer.cornerRadius = 22.5
imageView.layer.borderColor = UIColor.white.cgColor
imageView.layer.masksToBounds = true
imageView.image = imageToSet

}

加载已验证用户的个人资料图片。我唯一的问题是,每次我进入我的 ProfileViewController 时,加载图片需要 3-4 秒,而我希望在 instagram、whatsapp 等上加载图片。图像已经加载,所以没有这么烦人的等待时间。我该怎么办?

最佳答案

为了快速下载图像异步你可以使用这个 library

而且你可以用更少的代码行简单地下载图像

if(snapshotValue?["profile_pic"] as? String != nil) {
if let imgUrl = URL(string:snapshotValue?["profile_pic"] as! String)
{
self.profilePic.kf.setImage(with: imgUrl)
self.profilePic.layer.cornerRadius = min(self.profilePic.frame.height,self.profilePic.frame.width) / 2 //you can change the cornerRadius according to your need
self.profilePic.layer.borderColor = UIColor.white.cgColor
self.profilePic.layer.masksToBounds = true
}
}

希望对你有帮助

关于ios - 如何更快地加载用户的个人资料照片(Firebase,swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47528538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com