iOS-tableview SDWebImage加载多张图片内存警告(received memory warning)

热门标签

, ,

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

我们在做类似于朋友圈的列表的时候,我们在每个cell上加载多张图片的时候,我们快速的滚动列表,会收到内存警告,并且会出现闪退的状况;

我做了下面的操作解决了问题;

1.加载小的缩略图;

现在很多公司的图片服务器选择第三方的,比如阿里云,七牛等等,他们都有自己方法来获取缩略图,当然你们公司如果有自己的服务器,也可以自己做缩略图;

例如,以七牛为例

原图URL:http://7xpx8n.com1.z0.glb.clouddn.com/media_album_45666666_2016_05_24_14_15_06_144_8123.jpg

缩略图URL:http://7xpx8n.com1.z0.glb.clouddn.com/media_album_45666666_2016_05_24_14_15_06_144_8123.jpg?imageView2/1/w/200/h/200

2.在用户正在进行用户操作的时候,SDWebImage停止下载图片

//SDWebImageRetryFailed :下载失败后,会重新下载
//SDWebImageLowPriority :在用户正在进行用户操作的时候,SDWebImage停止下载图片
SDWebImageOptions options = SDWebImageRetryFailed | SDWebImageLowPriority;
NSString *uelStr = [NSString stringWithFormat:@"%@?imageView2/1/w/%.0f/h/%.0f",dict[@"url"],imageWidth,imageWidth];
[imageview sd_setImageWithURL:[NSURL URLWithString:uelStr] placeholderImage:[UIImage imageNamed:@"ZH_默认图片.jpg"] options:options completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
                imageview.contentMode = UIViewContentModeScaleAspectFill;
            }];</span>

3.内存处理,我们在收到内存警告的时候,取消下载,清除缓存

在AppDelegate里面写

#pragma mark - 收到内存警告
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application{
    NSLog(@"内存警告了⚠️⚠️⚠️⚠️⚠️⚠️⚠️");
    SDWebImageManager *mgr = [SDWebImageManager sharedManager];
    [mgr cancelAll];
    [mgr.imageCache clearMemory];
}

 

 

未经允许不得转载:作者:SheaYang, 转载或复制请以 超链接形式 并注明出处 技术Dog|博客
原文地址:《iOS-tableview SDWebImage加载多张图片内存警告(received memory warning)》 发布于2019-11-02

分享到:
赞(0) 打赏

评论 抢沙发

3 + 9 =


iOS-tableview SDWebImage加载多张图片内存警告(received memory warning)

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.0主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?