2014-10-16 4 views
0

У меня есть много ячеек с отличительным значением. таких как «бейсбольная клетка», «футбольная ячейка» и «камера AD». Повторное использование «футбольной ячейки для бейсбольной ячейки» подходит для меня. , но «AD cell» оказывает на него некоторый эффект анимации, поэтому я не хочу перезагружать его, если пользователь прокручивается.UICollectionView не использовать ячейку

так, есть ли способ сделать сбор, чтобы не использовать его ячейку?

Спасибо!

Извините, уточните, уточните причину.

Здесь я получил некоторые типы клеток в поле зрения сбора:

  1. бейсбольных клетки: показать новости бейсбола
  2. футбольных клетки: показать футбольные новости
  3. AD клетка: показывают AD_1.jpg -> AD_2. jpg -> AD_3.jpg ... повторно

Если просмотр коллекции перезагружает «ячейку AD» каждый раз, когда он за пределами экрана, а затем снова отображается. И я останавливаю анимацию и отпускаю ее при перезагрузке. пользователь может не иметь возможности увидеть последнее изображение AD. Мне нужен способ остановить повторное использование только для ячеек AD.

Спасибо.

+0

Дайте каждой ячейке AD уникальный идентификатор, используя номер строки в indexPath. – Zhang

ответ

1

Вы можете кэшировать свой объект тяжелой ячейки в другом экземпляре, только в коллекции коллекции UICollectionViewDataSource: (UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath, чтобы загрузить ячейку самостоятельно. Не используйте dequeueReusableCellWithReuseIdentifier или dequeueReusableSupplementaryViewOfKind. Но все управление памятью, вы должны заботиться.

поэтому в вашем случае вы кешируете «ячейку AD» в другом кэшированном классе, в вашем делете UICollectionViewDataSource просто используйте объект кешированной ячейки из вашего кешированного класса.

+0

Вот что мне нужно! Я кэшировал данные ячейки в массиве, когда вызывал cellforitemAtIndexPath, просто проверяю данные массива. Благодаря! – gogoqaz

0

Информация не достаточна.

Обычно вы хотите, чтобы разные ячейки идентифицировали разные типы элементов (которые имеют разную структуру), но тот же идентификатор для ячеек, которые имеют одинаковую структуру. Это касается анимации.

Использование нескольких ячеек одного типа без рециркуляции может вызвать много «оттока памяти», и это плохая идея.

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

Смежные вопросы