1

我正在尝试从外部 API 获取图像并将其绑定到该视图中的 UICollectionView 和 UIImageView 单元格。我能够获取数据并将其打印在日志文件中。但是,我无法在我的 UICollectionView 上看到图像。这是我的数据绑定的代码。

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
   ImagesViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];

  // imagesArray is an array with serialized json data.

  NSDictionary *finalImages = [self.imagesArray objectAtIndex:indexPath.row];

  NSLog(@"Entering collection view.....");

  [[cell imageViewCell]setImage:[UIImage imageNamed:[finalImages valueForKey:@"link"]]];

  return cell;
}

数据以 JSON 格式提供。

 data
{
  abc: 'abc',
  xyz: 'xyx',
  link: 'link to an online image'
}
4

2 回答 2

0

UIImage imageNamed:采用文件名,而不是 URL。

您需要手动将图像文件加载到NSData对象中,然后才能显示它。

NSData dataWithContentsOfURL会为你做这件事。

UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:[finalImages valueForKey:@"link"]]];
于 2013-03-20T01:43:49.650 回答
0

imageNamed 是一种从包中的图像文件 (image.png) 中获取图像的方法。

如果您想从 URL 获取图像,请将其下载为 Richhard Brown 先生的答案或使用 SDWebImage(直接使用 imageView 设置)

示例 colectionView SDWebImage 代码(非ARC):https ://github.com/lequysang/github_zip/blob/master/CollectionViewNonARC.zip

于 2013-03-20T02:36:33.707 回答