Изображение не отображается в пользовательской ячейке представления коллекции при первой прокрутке, но будет отображаться при второй прокрутке назад - PullRequest
0 голосов
/ 25 апреля 2020

Это когда изображение установлено в пользовательском классе ячеек.

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}>)

Кто-нибудь знает, почему оно появляется только после второго «набора» вывод производится? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...