Это когда изображение установлено в пользовательском классе ячеек.
if let image = post?.image {
print("image is set on post cell")
print(self.postImageView.image)
self.postImageView.image = image
print(self.postImageView.image)
self.postImageView.roundCorners(corners: [.topLeft, .topRight], radius: 15)
imageHeight = 185
}
Здесь изображение первоначально загружается в классе контроллера домашней подачи. Я использую хранилище Firebase для загрузки изображений.
if post.imageURL != nil {
let storageRef = Storage.storage().reference(forURL: post.imageURL!)
storageRef.downloadURL(completion: { (url, error) in
let data = NSData(contentsOf: url!)
let image = UIImage(data: data! as Data)
post.image = image
self.posts?.append(post)
self.collectionView.reloadData()
})
}
Чтобы убедиться, что изображение было установлено, я добавил операторы печати, как видно. Следующий вывод был получен, когда пост с ячейкой изображения должен был появиться на экране, когда я прокрутил вниз.
image is set on post cell
nil
Optional(<UIImage:0x6000027e8ab0 anonymous {3000, 2002}>)
image is set on post cell
nil
Optional(<UIImage:0x6000027ecd80 anonymous {4032, 3024}>)
image is set on post cell
nil
Optional(<UIImage:0x6000027ec090 anonymous {4288, 2848}>)
Однако, когда я прокручиваю вниз в первый раз, я вижу эти утверждения, и изображение не устанавливается. Однако, когда я начинаю прокручивать вверх, я вижу этот вывод, и изображение с соответствующими номерами (3000, 2002) устанавливается:
image is set on post cell
nil
Optional(<UIImage:0x6000027e8ab0 anonymous {3000, 2002}>)
Кто-нибудь знает, почему оно появляется только после второго «набора» вывод производится? Спасибо!