2016-09-30 2 views
0

Вход метод:UICollectionView dequeueReusableCellWithReuseIdentifier: forIndexPath: неправильное indexPath повторное использование клеток

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 

первый LoadData

2016-09-30 15:55:28.764 MYAPP[12950:384498] PosterCell-0: <PosterCell: 0x7fdd3c57cf90> 

2016-09-30 15:55:28.782 MYAPP[12950:384498] PosterCell-1: <PosterCell: 0x7fdd3c4cc0c0> 

2016-09-30 15:55:28.807 MYAPP[12950:384498] PosterCell-2: <PosterCell: 0x7fdd3c5815e0> 

второй reloadData

2016-09-30 15:55:28.959 MYAPP[12950:384498] PosterCell-0: <PosterCell: 0x7fdd3c5815e0> 

2016-09-30 15:55:28.961 MYAPP[12950:384498] PosterCell-1: <PosterCell: 0x7fdd3c57cf90> 

2016-09-30 15:55:28.962 MYAPP[12950:384498] PosterCell-2: <PosterCell: 0x7fdd3c4cc0c0> 

Вы видите, разные XRKPosterCell-0 в двух нагрузки. Зачем?

+0

Вы можете показать все методы делегата, которые вы использовали для просмотра коллекции. –

ответ

1

Это потому, что вы повторно используете ячейку, созданную с помощью dequeueResuableCell.

Сравнить перезарядку 1 с перезагрузкой 2 для других клеток тоже ... Вы можете заметить, что

postercell-0 in reload1 = postercell1 in reload2 
PosterCell-1 in reload1 = PosterCell-2 in reload2 
PosterCell-2 in reload1 = PosterCell-0 in reload2. 

Клетки просто повторного использования!

+0

Я знаю. Почему не postercell-0 в reload1 = PosterCell-0 в reload2 – weiminghuaa

+0

Неправильное повторное использование вызывает экран мерцания изображения – weiminghuaa