例子:https://github.com/KayCm/CellUpdate
最近在做的项目需要cell里面的数据需要和后台实时交互。而collectionview reload会整体刷新。
//m层 发送通知 [[NSNotificationCenter defaultCenter]postNotificationName:@"CartProUpdate" object:self userInfo:par]; //c层 //注册通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(UpdateForCells:) name:@"CartProUpdate" object:nil]; //收到通知后,更新cell -(void)UpdateForCells:(NSNotification*)Notification { NSLog(@"updateCell:%@",Notification.userInfo); //对比需要更新的cell,并更新CartInfo里的数据 for (int i = 0; i< [CartInfo count]; i++) { if ([[CartInfo objectAtIndex:i][@"sysnumber"] isEqualToString:Notification.userInfo[@"sysnumber"]]) { if (Notification.userInfo[@"ifbuy"] == nil) { [[CartInfo objectAtIndex:i] setValue:[NSString stringWithFormat:@"%@",Notification.userInfo[@"num"]] forKey:@"quantity"]; }else{ [[CartInfo objectAtIndex:i] setValue:[NSString stringWithFormat:@"%@",Notification.userInfo[@"ifbuy"]] forKey:@"ifBuy"]; } NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0]; NSMutableArray *indexPaths = [[NSMutableArray alloc] init]; [indexPaths addObject:indexPath]; //更新cell [CartCollectionView reloadItemsAtIndexPaths:indexPaths]; } } }