所以在其他任何事情之前,我发现了这个:
哪种帮助,但我真的很想使用SDWebImage
,有没有办法在完成之前通过类外的方法处理图像?
据我了解,完成块
- (void)setImageWithURL:(NSURL *)url completed:(SDWebImageCompletedBlock)completedBlock
在放置图像后运行。我想在放置加载的图像之前运行一个方法。
是否有捷径可寻?
谢谢你,
所以在其他任何事情之前,我发现了这个:
哪种帮助,但我真的很想使用SDWebImage
,有没有办法在完成之前通过类外的方法处理图像?
据我了解,完成块
- (void)setImageWithURL:(NSURL *)url completed:(SDWebImageCompletedBlock)completedBlock
在放置图像后运行。我想在放置加载的图像之前运行一个方法。
是否有捷径可寻?
谢谢你,
转发我的答案:SDWebImage 在缓存之前处理图像
SDWebImage 开发人员 Olivier Poitrey 在这里为我回答了这个问题。
您必须实现 SDWebImageManagerDelegate 协议,然后将其设置为共享管理器的委托,如下所示:
SDWebImageManager.sharedManager.delegate = self;
使用 imageManager:transformDownloadedImage:withURL: 实例方法。更多信息。
非常适合我。
两种选择:
编写自己的例程,独立使用异步图像缓存,处理图像,然后设置图像视图的image
属性。您必须担心一些有趣的排列(例如,如果在下载完成之前已重用单元格,您会想要取消该图像视图的先前图像下载),因此您需要小心,但事实并非如此太糟糕了。
不过,可能更容易编写您自己的UIImageView
类别,就像现有的SDWebImage
( UIImageView+WebCache.m
) 类别一样,但引入您自己的排列,setImageWithURL
就像原来的一样,但也提供了一个预处理完成块。
我可能会倾向于后者,但两者都可以很好地工作