4

これは、SDWebImageManagerを使用して画像をダウンロードする方法です:

- (void) downloadThumbnails:(NSURL *) finalUrl
{
    SDWebImageManager *manager = [SDWebImageManager sharedManager];
    [manager downloadWithURL:finalUrl
                     options:0
                    progress:nil
                   completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {

                       if (image)
                       {
                           self.thumbnailURL = [finalUrl absoluteString];
                        }
                   }];
}

- (UIImage*)thumbnail {

    if (!self.thumbnailURL) return nil;
    return [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:self.thumbnailURL];
}

クロスフェード効果を持つように変更するにはどうすればよいですか? Cross Fade Effect は、TechCrunch iOS アプリのように画像がゆっくりと遷移するエフェクトです。ありがとう!

更新: uitableview セルで (SDWebImage 以外の) クロス フェード効果を得るために何か他のことができる場合は、回答に書き込むことができます。

更新:前回の更新後、ほとんど回答がなく、問題を部分的に解決できました。以下の回答のように transitionWithView を使用すると、動作し、希望どおりにクロスフェードしますが、下部に触れるとより多くのエントリをロードする tableivew コントローラーを使用しているため、新しいブロックのエントリが表示される前にすべてのセルが一度更新されますどうすればこの動作を防ぐことができますか?

4

3 に答える 3

4

必ずしも UITableViewController クラスではない別のファイルで SDWebImageManager を使用しているようです。transitionWithView を使用できますが、別のクラスにある場合は SDWebImageManager を直接使用することはできません。

ただし、cellForRowAtIndexPath を使用し、画像を UITableViewCell の imageView にリンクしているテーブル ビュー コントローラー クラスでは、以下のように transitionView を使用できます。

[UIView transitionWithView:cell.(Your Image View)
                          duration:0.5
                           options:UIViewAnimationOptionTransitionCrossDissolve
                        animations:^{

                            cell.(Your ImageView).image = [(how ever you are calling it)];


                        } completion:^(BOOL finished) {
                            //  Optionally you can do anything after the completion
                        }];

お役に立てれば!

于 2013-08-04T20:56:30.360 に答える
-1

インターフェイス定義を参照してください。

- (id<SDWebImageOperation>)downloadWithURL:(NSURL *)url
                                   options:(SDWebImageOptions)options
                                  progress:(SDWebImageDownloaderProgressBlock)progressBlock
                                 completed:(SDWebImageCompletedWithFinishedBlock)completedBlock;

SDImageOptions にはいくつかの値があり、これはあなたが期待したものだと思います:

/**
 * This flag enables progressive download, the image is displayed progressively during download as a browser would do.
 * By default, the image is only displayed once completely downloaded.
 */
SDWebImageProgressiveDownload = 1 << 3
于 2013-08-01T14:56:36.413 に答える