Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class AccountSettings: UITableViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate{
- @IBOutlet weak var profileImage: UIImageView!
- var imageRef: StorageReference{
- return Storage.storage().reference().child("profile_images")
- }
- let cache = NSCache<NSString, UIImage>()
- var activityIndicator = UIActivityIndicatorView()
- override func viewDidLoad() {
- activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .gray)
- activityIndicator.frame = CGRect(x: 0, y: 0, width: 46, height: 46)
- activityIndicator.hidesWhenStopped = true
- profileImage.addSubview(activityIndicator)
- activityIndicator.startAnimating()
- if let image = cache.object(forKey: "(UserDefaults.standard.string(forKey: "unique_id")!).jpg" as NSString){
- profileImage.image = image
- }else{
- retrieveCurrentProfileImg()
- }
- }
- func retrieveCurrentProfileImg(){
- let downloadImageRef = imageRef.child("(UserDefaults.standard.string(forKey: "unique_id")!).jpg")
- let downloadTask = downloadImageRef.getData(maxSize: 1024*1024*12) { (data, error) in
- if let data = data{
- let image = UIImage(data: data)
- self.profileImage.image = image
- self.cache.setObject(image!, forKey: "(UserDefaults.standard.string(forKey: "unique_id")!).jpg" as NSString)
- self.activityIndicator.stopAnimating()
- }
- print(error ?? "No error")
- }
- downloadTask.observe(.progress) { (snapshot) in
- }
- downloadTask.resume()
- }
Add Comment
Please, Sign In to add comment