AFNetworking 下载和设置图片

Posted

技术标签:

【中文标题】AFNetworking 下载和设置图片【英文标题】:AFNetworking downloading and setting images 【发布时间】:2013-05-31 11:42:18 【问题描述】:

我看到了两种从 URL 下载图像的不同方法:

[imageView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"placeHolderImage"]]; 

AFImageRequestOperation *requestOperation = [AFImageRequestOperation imageRequestOperationWithRequest:...

我应该使用哪一个?

【问题讨论】:

【参考方案1】:

这取决于你想要达到的目标。

第一种方法是围绕UIImageView(作为一个类别)构建的,并允许按原样下载和显示图像。通常这种方法在表格视图或其他包含UIImageViews 的类似界面中很有用。首先,您将看到(如果已设置)一个占位符。当图片下载完成后,占位符将被替换为真实图片。

如果您需要下载图像并执行一些处理,则第二种方法很有用。使用完成块,您可以验证图像何时下载并进行缩放等。

最重要的是,虽然第一种方法执行与图像视图和相对图像的关联,但在第二种情况下,您需要自己进行。无论如何,第二个更灵活,因为您可以直接控制图像并执行额外的计算。

希望对你有帮助。

【讨论】:

也许@mattt 会在上面说点别的。 ;) Tnx 回答,但今天也看到了这个方法:'setImageWithURLRequest:placeholderImage:success:failure:' 这是我的问题中两种方法的某种混合吗?谢谢。 @user1832330 抱歉耽搁了。你需要达到什么目标?该方法与第二种方法相同,但带有回调。【参考方案2】:
[imageView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"placeHolderImage"]]; 

我在我的项目中使用了这个,它对我来说很好。

【讨论】:

我也在尝试 lazzytableview 概念,如果您需要更多帮助,最好告诉我... 看起来 setImageWithURL 实际上正在使用 AFImageRequestOperation 函数,所以这可能是正确的使用

以上是关于AFNetworking 下载和设置图片的主要内容,如果未能解决你的问题,请参考以下文章

AFNetworking 与 iOS 4.3 不兼容

AFNetworking 2.0,使用 NSURLSession 下载图片

AFNetworking 3.0 无法下载图片

显示使用 AFNetworking 下载图像的进度

iOS开发之旅AFNetworking与SDWebImage下载图片

使用GCD中的dispatch_semaphore(信号量)处理一个界面多个请求(把握AFNet网络请求完成的正确时机)