其实SDWebImage已经封装的非常之好了,但是如果你的客户端有特殊需求的话就需要根据自己的需求做一个定制化的方案。今天我就是有个特殊需求,根据当前网络和用户设置需求去网络下载大图还是小图。
接下来开始正题,首先既然我们是根据当前网络去下载的图片,那么我们就需要检测当前网络的状态,这个可以自己写代码,当然也可以继续在“巨人的肩膀”上去寻找现成的类库。
我们的项目中一般都会导入网络请求的库AFNetWork,而这个库中就有一个AFNetworkReachabilityStatus
来表示网络状态的库,我们就用这个去获取到当前网络的状态区分下载大图还是小图。
获取网络状态的代码如下:
AFNetworkReachabilityStatus status = [AFNetworkReachabilityManager sharedManager].networkReachabilityStatus;
就是这么简单。
然后我们可以根据这个status
去写使用哪种图片。详细逻辑如下:
if (status == AFNetworkReachabilityStatusReachableViaWiFi) {
NSLog(@"当前是wifi,赶紧去下载大图片啊&