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

imageNamed は、バンドル内の画像ファイル (image.png) から画像を取得するメソッドです。

URL から画像を取得したい場合は、Mr Richhard Brown の回答としてダウンロードするか、SDWebImage (imageView で直接設定) を使用します。

サンプル コレクションビュー SDWebImage コード (nonARC): https://github.com/lequysang/github_zip/blob/master/CollectionViewNonARC.zip

于 2013-03-20T02:36:33.707 に答える
0

UIImage imageNamed:URL ではなく、ファイル名を取ります。

NSData表示する前に、画像ファイルをオブジェクトに手動でロードする必要があります。

NSData dataWithContentsOfURLあなたのためにこれを行います。

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