私は非常に長い時間から戻ってきました。これは以前は動作していたアプリでしたので、新しいバージョンのiOSでは変更されていると思います。NSMutableArrayのUICollectionViewに画像が表示されない
私はシミュレータ上でアプリケーションを実行すると、画像は表示されませんが、セルが作成されていて、名前が表示されています。私はどこかで何かを逃しているに違いないが、私の人生ではそれを見ることができないことを知っている。しかし、私は最近の変化に精通していない。
すべてのヘルプははるかに高く評価し、これは私のコードです:
- (void)createData {
self.graniteImages = [NSMutableArray array];
[self.graniteImages addObject:[[NSMutableDictionary alloc]
initWithObjectsAndKeys:@"Angel Cream", @"name",
@"angel-cream.jpg", @"image", nil]];
[self.graniteImages addObject:[[NSMutableDictionary alloc]
initWithObjectsAndKeys:@"Angola Black", @"name" ,
@"angola_black1.jpg", @"image" , nil]];
[self.graniteImages addObject:[[NSMutableDictionary alloc]
initWithObjectsAndKeys:@"Angola Silver", @"name" ,
@"angola-silver1.jpg", @"image" , nil]];
[self.collectionView reloadData];
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return self.graniteImages.count;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
static NSString *identifier = @"Cell";
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
UIImageView *graniteImageView = (UIImageView *)[cell viewWithTag:100];
graniteImageView.image = [UIImage imageNamed:[[self.graniteImages objectAtIndex:indexPath.row] objectForKey:@"image"]];
return cell;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (_startingIndexPath) {
NSInteger currentIndex = floor((scrollView.contentOffset.x - scrollView.bounds.size.width/1)/scrollView.bounds.size.width) + 1;
if (currentIndex < [self.graniteImages count]) {
self.title = self.graniteImages[currentIndex][@"name"];
}
}
}
imageNamedが実際の画像を返すかどうか試してみることができます。おそらく何か資産が発生していますが、その画像を別の名前で読み込むことはできますか? – JackRobinson
アセット名ではなくファイル名を使用している可能性があります。 – torinpitchers
あなたの画像はアセットファイルにありますか?次に、 '.jpg'拡張子を削除してみます。 @ JackRobinsonはおそらく正しいです、あなたのイメージはロードされていない可能性があります。 – vitormm