cellForItemAtIndexPath

cellForItemAtIndexPath

在我使用的UICollectionView中,cellForItemAtIndexPath可以完美地工作并最初显示collectionView。即collectionView.reloadData首次成功执行。
使用以下代码重新加载时

[self.galleryCollectionView reloadData]


只需单击一个按钮,它最终就会崩溃。我启用了僵尸对象,它显示了错误

[CVCell release]: message sent to deallocated instance 0xa4f26c0.


以下是cellForItemAtIndexPath方法

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionVieww cellForItemAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"myCell";
CVCell *cell = (CVCell *)[collectionVieww dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
cell.cellid=indexPath;
cell.delegate=self;
cell.containerImage.delegate=self;
return cell;
}


我的ViewDidLoad调用以下方法来创建collectionView。

-(void) createCollectionView
{

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
//This is the size of a single cell courtesy:varuns research.
[flowLayout setItemSize:CGSizeMake(179, 224)];
flowLayout.minimumInteritemSpacing=45;
flowLayout.minimumLineSpacing=100;
flowLayout.sectionInset = UIEdgeInsetsMake(20, 30, 20, 5);
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
self.galleryCollectionView=[[UICollectionView alloc] initWithFrame:CGRectMake(0, 45, self.view.frame.size.width, self.view.frame.size.height-120) collectionViewLayout:flowLayout];
[ self.galleryCollectionView registerClass:[CVCell class] forCellWithReuseIdentifier:@"myCell"];
[self.galleryCollectionView setDataSource:self];
[self.galleryCollectionView setDelegate:self];

self.galleryCollectionView.backgroundColor=[UIColor clearColor];
 [self.view addSubview:self.galleryCollectionView];
[self.galleryCollectionView reloadData];
}


任何建议的解决方法?
提前致谢

最佳答案

在CreateCollectionView中,执行以下操作:

CVCell *cell = [UICollectionViewCell alloc] init];
[ self.galleryCollectionView registerClass:[CVCell class] forCellWithReuseIdentifier:@"myCell"];
[self.galleryCollectionView setDataSource:self];


然后,在cellForItemAtIndexPath中,这是:

UICollectionViewCell *cell = [collView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];


我认为应该这样做。但是我不确定在设置cell.delegate等的地方发生了什么。我不确定为什么有人会这样做,但是我想这是可能的。

10-06 13:54