我有一个自定义 UICollectionViewCell 子类。该单元格有两种尺寸,我在 sizeForItemAtIndexPath 方法中设置:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
CGSize size = CGSizeMake(320, 60);
if ([[[_locationsArray objectAtIndex:indexPath.row] objectForKey:@"hasAlert"] boolValue]) {
size = CGSizeMake(320, 155);
}
return size;
}
当所有物品的尺寸相同时,一切正常。当存在各种大小的单元格并且我删除其中一个,然后在 reloadData 所有单元格消失时,就会出现问题。删除单元格的方法如下:
-(void)MyCollectionViewCell:(MyCollectionViewCell *)cell didDeleteRowForIndex:(int)index{
[_locationTable performBatchUpdates:^(void){
[_locationsArray removeObjectAtIndex:index];
NSIndexPath *indexPath =[NSIndexPath indexPathForRow:index inSection:0];
[_locationTable deleteItemsAtIndexPaths:[NSArray arrayWithObject:indexPath]];
} completion:^(BOOL finished) {
[self updatePlist];
[_locationTable reloadData];
}];
}
知道如何解决这个问题吗?顺便说一句,当我不重新加载 collectionView 但 indexPaths 与单元格不匹配时,它可以工作。
谢谢