Обновление ячейки представления коллекции iOS задерживается

У меня есть образец коллекции. Я удаляю из очереди ячейку с помощью dequeueReusableCellWithReuseIdentifier:forIndexPath: Когда ViewController загружается, ОС удаляет из очереди 5 ячеек и загружает в нее информацию. Когда я прокручиваю, еще 5-7 ячеек выводятся из очереди и на них загружается информация. Второй набор загруженных ячеек выходит на передний план с информацией из первого набора загруженных ячеек, и информация в них обновляется свежей (справа) менее чем за полсекунды.

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

Какие-либо предложения? Спасибо.

РЕДАКТИРОВАТЬ: Хорошо, если я обновляю представления ячеек данными из dequeueReusableCellWithReuseIdentifier:forIndexPath:, все работает нормально, но если я передаю данные в ячейку и прошу ячейку изменить себя - тогда у меня проблема, указанная выше.

РЕДАКТИРОВАТЬ 2: Совед. Насколько я понимаю - это была глупая ошибка. В качестве совета для других - убедитесь, что вы передаете данные в ячейку в любом случае.


person bel    schedule 24.01.2014    source источник
comment
По какой причине вы не обновляете свои материалы в cellForItemAtIndexPath:?   -  person Krumelur    schedule 24.01.2014
comment
Я использую ‹code›cellForItemAtIndexPath:‹/code› для удаления ячеек из очереди и установки необходимой информации. Вы имели в виду, что мне нужно выполнить логику, которая в настоящее время находится в ‹code› prepareForReuse ‹/code› из ‹code›cellForItemAtIndexPath:‹/code›, а затем установить необходимую информацию?   -  person bel    schedule 24.01.2014
comment
Это то, что я имею в виду. Выбросьте prepareForReuse и переместите код в cellForItemAtIndexPath.   -  person Krumelur    schedule 24.01.2014
comment
Я переместил код из «prepareForReuse» в «resetCellUI» и вызвал его из «cellForItemAtIndexPath:», результат не изменился. Эффект наблюдается только один раз (при кешировании информации ОС). После первого раза все ячейки загружаются правильно.   -  person bel    schedule 24.01.2014


Ответы (1)


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

person Augie    schedule 24.01.2014
comment
Нет, вот инициализация ячейки 'MyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:myIde forIndexPath:indexPath]; ' - person bel; 24.01.2014
comment
Представления ячеек находятся в файле .xib, и у меня есть для них слабые IBOutlets. - person bel; 24.01.2014