SDWebImage:在刷新和放置图像之前运行方法

时间:2013-03-13 11:36:32

标签: ios image-processing lazy-loading sdwebimage

所以在其他任何事情之前,我发现了这个:

SDWebImage process images before caching

哪种帮助但我真的想使用SDWebImage,有没有办法在完成之前通过类外的方法处理图像?

根据我的理解,

中的完成块
- (void)setImageWithURL:(NSURL *)url completed:(SDWebImageCompletedBlock)completedBlock
放置图像后运行

。我想在放置加载的图像之前运行一个方法。

有一种简单的方法吗?

谢谢,

2 个答案:

答案 0 :(得分:2)

重新发布我的答案:SDWebImage process images before caching

SDWebImage开发人员Olivier Poitrey在这里为我回答了这个问题。

您必须实现SDWebImageManagerDelegate协议,然后将其设置为共享管理器的委托,如下所示:

SDWebImageManager.sharedManager.delegate = self;

使用imageManager:transformDownloadedImage:withURL:instance方法。 更多信息。

完美地为我工作。

答案 1 :(得分:0)

两个选项:

  1. 编写自己的例程Use Asynchronous Image Caching Independently,处理图像,然后设置图像视图的image属性。有一些有趣的排列你不必担心(例如,如果在下载完成之前已经重用了单元格,那么你想要取消该图像视图的先前图像下载),所以你需要小心,但它不是太糟糕了。

  2. 可能更容易编写自己的UIImageView类别,就像SDWebImageUIImageView+WebCache.m)的现有类别一样,但会引入您自己的排列{ {1}}就像原版一样,但也提供了一个预处理完成块。

  3. 我可能会倾向于后者,但两者都能很好地运作