1

我试图弄清楚以下代码段中可能发生的情况。我有一个收藏视图,我将保存的图像显示为缩略图。我还在末尾插入了一个股票“新图像”图标,以便用户可以添加额外的图像。

在 iPad 模拟器上它看起来很好,但是当我在设备上运行时,我没有看到“新图像”图标。我可以触摸它以打开相机视图控制器进行捕获/选择,但图像不显示。有任何想法吗?这是代码...

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

static NSString *cellIdentifier = @"cvCell";

CVCell *cell = (CVCell *)[[self sectionImagesCollectionView] dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
if ([indexPath row] < [sectionImages count]){
    // Have an image so assign the photograph
    RFHSectionImages *sectionImage = [sectionImages objectAtIndex:[indexPath row]];
    UIImage *image = [UIImage imageWithData:[sectionImage photograph]];
    [[cell imageView] setImage:image];
} else {
    // Use the standard image
    UIImage *newPhoto = [UIImage imageNamed:@"New Image.png"];
    [[cell imageView] setImage:newPhoto];
}

return cell;

}

4

2 回答 2

3

这是许多开发人员浪费时间的一个小细节:

区分大小写

真的,这一切都归结为:

  • iPhone模拟器:区分大小写
  • iOS设备:区分大小写

因此,您的代码中可能有“New Image.png”,但实际的图像名称是“new image.png”。它甚至可能类似于“nEw iMaGe.png”。

这在模拟器上可以正常工作,但在设备上却不行——设备根本找不到图像。

从图像到 plist 的所有事情都发生在我身上。

检查您的案例!

于 2013-05-03T19:46:46.887 回答
0

我有一个类似的问题,但罪魁祸首是网络延迟——必须手动调用 self.collectionView.reloadData() 才能显示出来。在本地,数据加载速度显然足够快,这不是问题。

于 2015-08-21T22:20:22.347 回答