3

我是新手UICollectionView,我正在学习在 Youtube 上找到的教程,但我遇到了一个我无法弄清楚的错误。

当我使用此代码运行应用程序时:

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {

        return 1;

    }

    -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {

        return [self.array count];

    }

    -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {

        CollectionCell *aCell = (CollectionCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"myCell" forIndexPath:indexPath];

        aCell.title.text = self.array[indexPath.row];

        return aCell;

    }

    - (void)viewDidLoad
    {
        [super viewDidLoad];

        self.array = @[@"First", @"Second", @"Thirth", @"Fourth"];

    }

在.h中:

@property (strong, nonatomic) NSArray *array;

在控制台中,我收到以下错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'UICollectionView must be initialized with a non-nil layout parameter'

我没有使用情节提要,并且自定义了 CollectionView 您可以在此处看到的内容:

图片

有谁知道为什么我会收到此错误?欢迎一切!

编辑:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.array = @[@"First", @"Second", @"Thirth", @"Fourth"];

    [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"myCell"];

    UICollectionViewFlowLayout *flow = [[UICollectionViewFlowLayout alloc] init];
    [flow setItemSize:CGSizeMake(60, 60)];
    [flow setScrollDirection:UICollectionViewScrollDirectionVertical];

    [self.collectionView setCollectionViewLayout:flow];

}
4

2 回答 2

5

注册 uicollectionviewcell 视图类时出错。要解决,请将以下行放入您的代码中:

[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"myCell"];
于 2013-03-07T11:39:02.937 回答
2

在方法中注册集合单元viewDidLoad::

[self.collView registerClass:[mineCell class] forCellWithReuseIdentifier:@"cvCell"];

在上面的行之后试试这个:

UICollectionViewFlowLayout *flow = [[UICollectionViewFlowLayout alloc] init];
[flow setItemSize:CGSizeMake(60, 60)];
[flow setScrollDirection:UICollectionViewScrollDirectionVertical];

[self.collView setCollectionViewLayout:flow];

这里,mineCell是我自定义的collectionViewCell,也可以[UICollectionViewCell class]直接使用。

谢谢。

于 2013-03-07T11:44:02.433 回答