Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SDWebImage:在刷新和放置映像之前运行方法_Ios_Image Processing_Lazy Loading_Sdwebimage - Fatal编程技术网

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

Ios SDWebImage:在刷新和放置映像之前运行方法,ios,image-processing,lazy-loading,sdwebimage,Ios,Image Processing,Lazy Loading,Sdwebimage,所以在做其他事情之前,我发现: 哪种方法有帮助,但我确实想使用SDWebImage,在完成之前,有没有一种方法可以通过类外的方法处理图像 据我所知,完成块 - (void)setImageWithURL:(NSURL *)url completed:(SDWebImageCompletedBlock)completedBlock 在放置图像后运行。我想在放置加载的图像之前运行一个方法 有没有一个简单的方法可以做到这一点 谢谢,两个选项: 编写自己的例程,处理图像,然后设置图像视图的image

所以在做其他事情之前,我发现:

哪种方法有帮助,但我确实想使用
SDWebImage
,在完成之前,有没有一种方法可以通过类外的方法处理图像

据我所知,完成块

- (void)setImageWithURL:(NSURL *)url completed:(SDWebImageCompletedBlock)completedBlock
在放置图像后运行。我想在放置加载的图像之前运行一个方法

有没有一个简单的方法可以做到这一点

谢谢,

两个选项:

  • 编写自己的例程,处理图像,然后设置图像视图的
    image
    属性。您必须担心一些有趣的排列(例如,如果在下载完成之前单元已被重用,您可能希望取消该图像视图的先前图像下载),因此您需要小心,但这并不太糟糕

  • 不过,可能更容易编写自己的
    UIImageView
    类别,就像现有的
    SDWebImage
    UIImageView+WebCache.m
    )类别一样,但是引入自己的
    setImageWithURL
    排列,它与原始类别一样,但也提供了一个预处理完成块


  • 我可能倾向于后者,但两者都能很好地发挥作用

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

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

    SDWebImageManager.sharedManager.delegate=self

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


    对我来说效果很好。

    谢谢你的回答,但是下面的委托方法答案也很好。你能添加一些代码示例来更好地解释答案吗?