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];

ここに、私のカスタム collectionViewCell があります。直接mineCell使用することもできます。[UICollectionViewCell class]

ありがとう。

于 2013-03-07T11:44:02.433 に答える