UICollectionView dequeueReusableCellWithReuseIdentifier:forIndexPath:错误的indexPath重用单元格

时间:2016-09-30 08:04:30

标签: ios uicollectionview reloaddata

登录方法:

- (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不同。为什么呢?

1 个答案:

答案 0 :(得分:1)

这是因为您正在重用使用dequeueResuableCell创建的单元格。

将reload 1与reload 2进行比较以获得其他单元格...您可以观察到

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

细胞正在重复使用!