Проверьте, видна ли ячейка в indexPath на экране UICollectionViewIOS

Программируем под IOS
Ответить
Anonymous
 Проверьте, видна ли ячейка в indexPath на экране UICollectionView

Сообщение Anonymous »

У меня есть CollectionView, который отображает изображения пользователю. Я загружаю их в фоновом режиме, а когда загрузка завершается, я вызываю следующую функцию, чтобы обновить коллекциюViewCell и отобразить изображение.

Код: Выделить всё

func handlePhotoDownloadCompletion(notification : NSNotification) {
let userInfo:Dictionary = notification.userInfo as! Dictionary
let id = userInfo["id"]
let index = users_cities.indexOf({$0.id == id})
if index != nil {
let indexPath = NSIndexPath(forRow: index!, inSection: 0)
let cell = followedCollectionView.cellForItemAtIndexPath(indexPath) as! FeaturedCitiesCollectionViewCell
if (users_cities[index!].image != nil) {
cell.backgroundImageView.image = users_cities[index!].image!
}
}
}
Это отлично работает, если ячейка в данный момент видна на экране, однако если это не так, я получаю

Код: Выделить всё

fatal error: unexpectedly found nil while unwrapping an Optional value
ошибка в следующей строке:

Код: Выделить всё

 let cell = followedCollectionView.cellForItemAtIndexPath(indexPath) as! FeaturedCitiesCollectionViewCell
Теперь эту функцию даже не нужно вызывать, если коллекцияViewCell еще не видна, потому что в этом случае изображение будет задано в методе cellForItemAtIndexPath в любом случае.

Отсюда и мой вопрос: как я могу изменить эту функцию, чтобы проверить, видна ли в данный момент ячейка, с которой мы имеем дело, или нет. Я знаю о коллекцииView.visibleCells(), однако не знаю, как ее здесь применить.

Подробнее здесь: https://stackoverflow.com/questions/382 ... ectionview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»