このチュートリアルに従って、UICollectionView を作成しました。問題なくコードをコピーしましたが、試してみるとクラッシュします
- (void)viewDidLoad
{
[super viewDidLoad];
gridImages = [[NSMutableArray alloc]init];
[gridImages addObject: @"test.jpg"];
[gridImages addObject: @"test.jpg"];
[gridImages addObject: @"test.jpg"];
[gridImages addObject: @"test.jpg"];
[gridImages addObject: @"test.jpg"];
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return gridImages.count;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
static NSString *identifier = @"Cell";
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
UIImageView *gridImageView = (UIImageView *)[cell viewWithTag:100];
gridImageView.image = [UIImage imageNamed:[gridImages objectAtIndex:indexPath.row]];
return cell;
}
クラッシュは次の行にあります。
UIImageView *gridImageView = (UIImageView *)[cell viewWithTag:100];
viewwithtag を 99 や 101 のように変更すると機能しますが、コレクション ビューは test.jpg 画像ではなく単なるボックスとして表示されます。viewwithtag とは正確には何ですか?
クラッシュ:
[UICollectionViewCell setImage:]: unrecognized selector sent to instance 0x1659b300'
何が起こっているのか分かりますか?
編集: 申し訳ありませんが、タグ 100 は、ストーリーボードのコレクションビューの UIImageView に関連付けられたタグです。それでもクラッシュしますが