我尝试了以下代码:
- (UICollectionViewCell *)collectionViewUICollectionView *)collectionView cellForItemAtIndexPathNSIndexPath *)indexPath
{
Pictograma *pictograma;
pictograma = [pictogramas objectAtIndex:indexPath.row];
AddPictogramaCell *newCell = [[AddPictogramaCell alloc] initWithFrame:CGRectMake(0, 0, 200, 200) pictograma:pictograma];
[newCell.nombre setText:pictograma.nombre];
[newCell.imageView setImage:[UIImage imageWithContentsOfFile:pictograma.path]];
newCell.pictograma = pictograma;
return newCell;
}
但我得到了错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason:
'the cell returned from -collectionView:cellForItemAtIndexPath: does not have a reuseIdentifier - cells must be retrieved by calling -
dequeueReusableCellWithReuseIdentifier:forIndexPath:'
我不使用 Storyboard,所以我不知道如何解决这个问题。
Best Answer-推荐答案 strong>
这里有两个问题。
首先,当您创建 collectionView 时,您需要添加这一行
[collectionView registerClass:[AddPictogramaCell class] forCellWithReuseIdentifier"YOUR_IDENTIFIER"];
然后在您的 collectionView:cellForItemAtIndexPath: 中创建您的单元格,如下所示:
AddPictogramaCell *newCell = (AddPictogramaCell*)[collectionView dequeueReusableCellWithReuseIdentifier"YOUR_IDENTIFIER" forIndexPath:indexPath];
关于ios - 如何在没有storyBoard的情况下以编程方式将单元格添加到 Collection View ,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/25377165/
|