私はFirebaseデータベースからイメージリンクを取得し、配列に順番に格納してから、その配列を実行してイメージを取得しますアレイ内のリンクを使用して対応するFirebaseストレージFirebase Storage getDataはcollectionViewでイメージの順序が間違って読み込まれます
しかし、コードがリンクを順番に実行しても、getData関数は画像を順不同でロードします。なぜ私は最初の考えは、サイズの順に画像が読み込まれるということでしたが、これはどうして起こっているのか分かりません。ここに私のコードです。
for link in Constants.officialLinksArray {
let storage = Storage.storage().reference(forURL: link)
// Download the data, assuming a max size of 1MB (you can change this as necessary)
storage.getData(maxSize: 10 * 1024 * 1024) { (data, error) -> Void in
// Create a UIImage, add it to the array
if let error = error {
print(error)
} else {
//print(self.imageCount)
let loadedImage = UIImage(data: data!)
self.photoArray.append(loadedImage!)
Constants.officialPhotoArray = self.photoArray
self.buttonArray.append(self.photoArray.count)
self.collectionView.reloadData()
//print(self.photoArray)
}
}
}
助けてください。ありがとう!
ここで画像をダウンロードするのではなく、非同期でcellforrowで行います。詳細はこちらを参照してください。https://stackoverflow.com/questions/24231680/loading-downloading-image-from-url-on-swift –