Date: 2013/11/12 Cate: iPhone, Objective-C Tags: ,  

UITableViewにUIImageViewを置いて、その画像をWeb上からとってきて表示するときに、前まではAsyncImageViewをつかっていたのですが、

え、そんなレガシーなもん使ってんの?

って言われたので調べてみるとなんかSDWebImageってのがGithubでもスターいっぱいついてて良さそうなのでこっちを使うようにしてみました。
キャッシュとかもよしなにしてくれるし、gifアニメーションとかも表示できちゃうのでいい感じです。

placeholderをセットすれば読み込むまでの間に表示しておく仮の画像とかも表示できて便利なわけです。
ただ、今回の用途はちょっと大きめの画像を読み込むこともあって、読込時間がながくなるとplaceholder画像ばっかになっちゃうなと思い、
最初は小さいサムネイルを読み込んで、その後に大きい画像を読み込んで表示するってのをやってみました。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CustomCell *cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:@"Cell"];
    NSString *thumbUrl = @"http://unkounko.com/thumb.png";
    NSString *fullUrl = @"http://unkounko.com/main.png";
        [self.myImageView setImageWithURL:[NSURL URLWithString:thumbUrl]
                   placeholderImage:nil
                          completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType){
        [self.myImageView setImageWithURL:[NSURL URLWithString:fullUrl] placeholderImage:image];
    }];
    return cell;
}

こんなかんじに書いたらまずサムネイル画像を読み込んで、読み込み終わったらそのサムネイルをplaceholderImageにいれて大きい画像を読みに行く、みたいなことができます。

Leave a Reply