お使いのブラウザは、バージョンが古すぎます。

このサイトは、Internet Explore8・Internet Explore9には対応しておりません。
恐れ入りますが、お使いのブラウザをバージョンアップしていただきますよう宜しくお願いいたします。

【iOS】UITableViewCell内の非同期画像読み込み

こんにちは。mashiです。今回は、UITableViewCell内の非同期画像読み込みについてサラッとまとめてみたいと思います。

今回は「AFNetworking」ライブラリを使用して実装します。

ライブラリをダウンロード

以下のリンクからライブラリ「AFNetworking」をダウンロードします。
AFNetworking/AFNetworking · GitHub

プロジェクトに追加

ダウンロードした「AFNetworking」ディレクトリ内から

  • AFNetworking
  • UIKit+AFNetworking

をディレクトリごとプロジェクトへ追加します。

フレームワークを追加

「Targets」->「Build Phases」->「Link Binary With Libraries」から

  • Security.framework
  • MobileCoreServices.framework
  • SystemConfiguration.framework

を追加します。

サンプルコード

#import "AFNetworking.h"
#import "UIImageView+AFNetworking.h"


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITalbeViewCell *cell = (UITalbeViewCell *)[tableView dequeueReusableCellWithIdentifier:@"CELL" forIndexPath:indexPath];
      // cell内のimageViw_AFNetWorking-------------------------------------------------------------------------------------------------------------------------------------
    NSString *urlString =@"http://*****************/ファイル名";
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    UIImage *placeholderImage = [UIImage imageNamed:@"no_image.jpg"]; // 読み込み前の画像
    
    __weak UITableViewCell *weakCell = cell;
    __weak UIImageView *weakImageView = cell.imageView;
    [cell.imageView setImageWithURLRequest:request
                               placeholderImage:placeholderImage
                                        success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
                                            weakImageView.image = image;
                                            [weakCell setNeedsLayout];
                                        } failure:nil];
  return cell;
}

ロード中はplaceholderImageで設定した画像が表示されます。
読み込みが完了した時点でURL先の画像が表示されます。

コメントをどうぞ

メールアドレスは公開されません。* が付いている欄は必須項目です。


お気軽にお問い合わせください。

日本VTR実験室では、お仕事のご依頼、ブログ・コラムのご感想などを受け付けております。
アプリ開発・コンテンツ制作でお困りでしたら、お気軽にご相談ください。
ご連絡お待ちしております。

お問い合わせはこちらから

03-3541-1230

info@nvtrlab.jp

電話受付対応時間:平日AM9:30〜PM6:00