OStack程序员社区-中国程序员成长平台

标题: ios - 如何在没有storyBoard的情况下以编程方式将单元格添加到 Collection View [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 11:26
标题: ios - 如何在没有storyBoard的情况下以编程方式将单元格添加到 Collection View

我尝试了以下代码:

- (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-推荐答案


这里有两个问题。

首先,当您创建 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/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4