http://blog.csdn.net/sadsadaadsd/article/details/51956671
UICollectionViewCell重用疊加出問題的解決?
首先創(chuàng)建一個(gè)可變數(shù)組,用來存放Cell的唯一標(biāo)示符
// 用來存放Cell的唯一標(biāo)示符
@property (nonatomic, strong) NSMutableDictionary *cellDic;
#warning 別忘了初始化喲
self.cellDic = [[NSMutableDictionary alloc] init];
在cellForItemAtIndexPath:這個(gè)方法中作相應(yīng)的一些處理即可,代碼如下
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
// 每次先從字典中根據(jù)IndexPath取出唯一標(biāo)識(shí)符
NSString *identifier = [_cellDic objectForKey:[NSString stringWithFormat:@"%@", indexPath]];
// 如果取出的唯一標(biāo)示符不存在,則初始化唯一標(biāo)示符,并將其存入字典中,對(duì)應(yīng)唯一標(biāo)示符注冊(cè)Cell
if (identifier == nil) {
identifier = [NSString stringWithFormat:@"%@%@", DayCell, [NSString stringWithFormat:@"%@", indexPath]];
[_cellDic setValue:identifier forKey:[NSString stringWithFormat:@"%@", indexPath]];
// 注冊(cè)Cell
[self.collectionView registerClass:[CalendarCollectionViewCell class]? forCellWithReuseIdentifier:identifier];
}
CalendarCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
// 此處可以對(duì)Cell做你想做的操作了...
return cell;
}