Обнаружьте, когда UITableViewCell уйдет экран

Если вы получаете

«Неожиданно найденный ноль при развертывании необязательного значения»

Если существует некоторая проблема с идентификатором ячейки, индекс массива установлен неправильно. Вы можете проверить это оба сценария.

27
задан 8 May 2009 в 17:54
поделиться

3 ответа

Я думаю, вы могли бы использовать метод

- (NSArray *)visibleCells

для своего UITableView. Это возвращает массив всех видимых ячеек. Затем вы можете пометить любые данные, которые «не видны» (то есть не в этом массиве), как хотите, чтобы при прокрутке назад они были обновлены.

Надеюсь, что это поможет

6
ответ дан 28 November 2019 в 04:18
поделиться

Вы уверены, что ячейка, выходящая за пределы экрана, - это именно то, что вы хотите поймать? Если вы хотите пометить элементы как прочитанные, это не похоже на правильный способ сделать это. Например, я мог бы очень быстро прокручивать таблицу, и я был бы очень удивлен, если бы вы отметили все, что было прочитано.

Что касается технической части, просто сохраните список ячеек, которые отображаются на экране (cellForRowAtIndexPath должен добавить ячейки в этот список), а в методе делегата scrollViewDidScroll проверьте, не видны ли какие-либо из них.

Другая возможная идея: я помню, что для ячейки есть метод prepareForReuse , Однако не уверен, когда он вызван.

1
ответ дан 28 November 2019 в 04:18
поделиться

Я бы попытался периодически проверять свойство indexPathsForVisibleRows UITableView. По самому большому пути индекса можно сделать вывод, что все предыдущие строки были прокручены.

0
ответ дан 28 November 2019 в 04:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: