iOS_AFNetworking_UIImageView+AFNetworking(实现图片异步加载)

本文详细介绍了如何使用UIImageView+AFNetworking在iOS中实现图片的异步加载,包括导入AFNetworking库,引入UIImageView+AFNetworking头文件,以及具体实现图片下载和取消下载的步骤。该文旨在阐述核心API和使用注意事项,适合开发者参考。
摘要由CSDN通过智能技术生成

说明 :

  • UIImageView+AFNetworking 是AFNetworking中一个实现图片异步加载的类, 它是为系统中的UIImageView类添加的类目(Category), 这个类目中的方法为远程异步加载图片功能提供支持.

  • 本文主要是针对UIImageView+AFNetworking的一些使用方法和在应用时需要注意的地方进行归纳, 供大家参考和自己学习.

  • 程序代码中的 urlStr 和 placeholderImage 以自己工程中为准, 本文中使用MRC进行内存管理.

  • 文章中尽量不使用或少使用封装, 目的是让大家清楚为了实现功能所需要的官方核心API是哪些(如果使用封装, 会在封装外面加以注释)

  • 此文章由@河马流星锤编写, 经@春雨, @Scott 审核, 若转载此文章请注明出处和作者.

UIImageView+AFNetworking 的创建方法及相关知识点

核心API

class : UIImageView+AFNetworking
delegate : 无
涉及的API : (AFNetworking的官方API(英文)详见本章结尾)

/** 1. 通过指定的NSURL对象异步加载一个图片 */
- (void)setImageWithURL:(NSURL *)url

/** 通过指定的NSURL对象异步加载一个图片, 并在加载完成之前设置一个占位图片. */
- (void)setImageWithURL:(NSURL *)url
       placeholderImage:(UIImage *)placeholderImage

/** 2. 通过指定的NSRequest对象异步加载一个图片, 参数介绍详见本文结尾的API英文注释部分 */ 
- (void)setImageWithURLRequest:(NSURLRequest *)urlRequest
              placeholderImage:(UIImage *)placeholderImage
                       success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image))success
                       failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure

/** 3. 取消请求操作 */             
- (void)cancelImageRequestOperation

功能实现

思路

  1. 导入AFNetworking工程文件.
  2. 引入UIKit+AFNetworking/UIImageView+AFNetworking.h头文件.
  3. 下载图片
  4. 取消图片下载(可选)
(1). 导入AFNetworking工程文件

/** 本文使用的AFNetworking版本为AFNetworking_v2.5.1. */
(2). 引入UIKit+AFNetworking/UIImageView+AFNetworking.h头文件

#import "UIKit+AFNetworking/UIImageView+AFNetworking.h"

/** 说明: UIImageView(AFNetworking)因为是在系统类上增加的类目不需要自己创建, 只要将AFNetworking工程文件拖入工程, 并在要使用页面位置引入头文件即可, 本文介绍使用的是添加到工程的两个文件夹中的文件夹"UIKit+AFNetworking"中, 引入"UIImageView+AFNetworking.h" */
(3). 实现图片异步加载

/* 创建NSURL对象 */
    NSURL *urlStr = [NSURL URLWithString:@"http://img2.cache.netease.com/3g/2015/9/18/20150918195439dc844.jpg"];

/* 创建请求对象 */
    NSURLRequest *request = [NSURLRequest requestWithURL:urlStr];

/* 创建一个imageView对象 */
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];

/** 
 * 方法一:
 * 直接使用url字符串获取照片
 * @param urlStr : NSURL对象
 */
[imageView setImageWithURL:urlStr];

/**
 * 方法二:
 * 直接使用URL(例如:http://img2.cache.netease.com/3g/2015/9/18/20150918195439dc844.jpg)异步加载图片, 照片出现之前添加一个占位的背景照片
 * @param urlStr : NSURL对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值