我很长一段时间都没有回来,这是一个以前正在运行的应用程序,所以我假设它更新于iOS的新版本。
当我在模拟器上运行应用程序时,不显示任何图像,但正在创建单元格并显示名称。我知道我必须在某个地方遗漏某些东西,但不能为我的生活看到它,但是我不熟悉最近的变化。
非常感谢任何帮助,这是我的代码:
- (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"];
}
}
}
答案 0 :(得分:0)
您是否在故事板中构建项目?什么是你创建的UICollectionViewCell
的调试信息和graniteImageView返回的
[cell viewWithTag:100]
?
确保将graniteImageView添加到单元格并具有正确的框架,检查您的单元格和图像是否有效。
答案 1 :(得分:0)
我遇到了同样的问题。我的问题使用下面的代码解决。在这里我以编程方式创建了UIImageView
UIImageView * graniteImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,cell.frame.size.width,cell.frame.size.height)];
graniteImageView.image = [UIImage imageNamed:[[self.graniteImages objectAtIndex:indexPath.row] objectForKey:@"image"]];
graniteImageView.contentMode = UIViewContentModeScaleAspectFit;
graniteImageView.tag = indexPath.row;// Add here what tag you need
[cell addSubview:graniteImageView];
答案 2 :(得分:0)
解决了!
尝试使用图像文件夹,然后为每个类别设置子文件夹。
当我将所有内容从子文件夹移动到图像文件夹时,它们都开始显示!
感谢你们的帮助!