首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SDWebImage会导致“不是原型”警告

SDWebImage是一个流行的iOS开发库,用于异步加载和缓存网络图片。它提供了许多方便的功能和接口,使开发者能够轻松地在应用程序中显示和管理图片。

“不是原型”警告通常是由于使用SDWebImage加载图片时,UIImageView的frame属性被设置为非整数值而引起的。这可能会导致图片显示不完整或模糊。

为了解决这个警告,可以采取以下几种方法:

  1. 确保UIImageView的frame属性的值是整数。可以使用floor()函数将浮点数值转换为整数值,例如:
代码语言:objective-c
复制
imageView.frame = CGRectMake(floor(x), floor(y), floor(width), floor(height));
  1. 使用SDWebImage提供的方法设置图片的显示模式。可以使用SDWebImage提供的sd_setImageWithURL:placeholderImage:options:completed:方法,并指定SDWebImageScaleDownLargeImages选项,以确保图片在加载时被缩小到适合UIImageView的大小。例如:
代码语言:objective-c
复制
[imageView sd_setImageWithURL:url
             placeholderImage:placeholderImage
                      options:SDWebImageScaleDownLargeImages
                    completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
                        // 图片加载完成后的回调
                    }];
  1. 在使用SDWebImage加载图片之前,先将UIImageView的frame属性设置为整数值。例如,在设置图片之前,可以使用以下代码将UIImageView的frame属性调整为整数值:
代码语言:objective-c
复制
imageView.frame = CGRectMake(floor(imageView.frame.origin.x), floor(imageView.frame.origin.y), floor(imageView.frame.size.width), floor(imageView.frame.size.height));

总之,通过确保UIImageView的frame属性为整数值,使用SDWebImage提供的显示模式选项,以及在需要时调整UIImageView的frame属性,可以解决“不是原型”警告并正确显示图片。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

微软数据科学负责人:数据不是现实,“数据驱动”导致很多问题

当然,并不是每一个人读出的都是这句话。如果你正在吃东西或者正坐在一家餐厅里,那你更有可能读出的是,“你在吃什么?(What are you eating now?)”...所以,Linda 更有可能是银行出纳员,而不是女权主义银行出纳员。我们为什么犯这种错误?抛开行为心理学不谈,最基本的原因可能在于情景 2 讲述了一个更好的故事,所以我们更喜欢这个选项。...这些描述就导致大多数人对于这些对象产生了不容易克服的偏见,他们很难再看到这些道具其它的使用方式。 多年来,研究人员尝试了不同的方法,想要提高受试者解决问题的机会,让他们更快的找到解决方案。...但不幸的是,许多专业人士对待数据却不是这个样子。我经常听到同事在讨论设计或业务决策的时候,问“数据让我们去做些什么?”真正的答案是:数据没有那么大的神通。...这也就是说,我们应该将数据看作是信息,而不是见解。换言之,问题不在于原料,在厨师。只有原料无法成就一桌大餐(至少,不是一桌美味佳肴)。

54960

利用SDWebImage清除内存缓存

https://blog.csdn.net/u010105969/article/details/53377679 我们在使用SDWebImage下载图片的时候会发现如果一个TableView上的单元格很多而且每个单元格上都有图片那么在上滑单元格的时候内存越来越大...,因此我们必须想一个清除内存的方法,今天介绍的方法就是SDWebImage中的一个方法: [[SDImageCache sharedImageCache] clearMemory]; 此方法可以将利用...SDWebImage下载的图片从缓存中清除,注意是缓存中并不是沙盒中。...实际从缓存中清除图片方法在内存警告的时候SDWebImage自动调用清除缓存方法,可内存警告实在有点难,不知道要等到内存多大的时候才会发生内存警告进而让SDWebImage自动清除缓存。

2.6K30
  • 【IOS开发基础系列】SDWebImageDownloader专题

    2 开发技巧 2.1 常见问题 2.1.1 下载大量图片导致内存告警 2.1.1.1 问题原因     1、CGBitmapContextCreateImage绘制的图片造成内存无法释放,应该换用CGDataProviderCreateWithCFData...;     2、加载大量图片时,SD会将图片进行解压(加快渲染速度,但是内存增大差不多一倍),然后将解压后的Image数据缓存在内存中,从而导致内存暴涨; 以下代码具有内存泄露问题:     // 原始方案...,发生内存猛增,直接闪退的情况,简单说一下解决方案 http://www.myexception.cn/swift/2033029.html 关于SDWebImage加载高清图片导致app崩溃的问题 http...://www.bubuko.com/infodetail-956863.html SDWebImage加载大图导致的内存警告问题 http://blog.csdn.net/richer1997/article.../details/43481959 解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题 http://my.oschina.net/u/1244672/blog/510379

    65320

    SDWebImage 图片下载缓存框架 常用方法及原理

    NSCache SDImageCache内处理内存警告,以通知的方式,clearMemory cleanDisk的执行过程 i....可以去加载远程图片,而且还会缓存图片,下次请求会看一下是否已经存在于缓存中,如果是的话直接取本地缓存,如果不是的话则重新请求。...url加入黑名单,不断尝试重新下载 SDWebImageLowPriority 延迟下载, 默认情况下,图片会在交互发生的时候下载(例如你滑动tableview的时候),这个枚举禁止这个特性,导致的结果就是在...所以请求同一个url时,SDWebImage从缓存中取得图片。...UIApplicationWillTerminateNotification,在内存警告的时候清理内存图片缓存,应用结束的时候清理过期图片。

    3.1K40

    扒虫篇-Bug日志Ⅴ

    解决方法:首先这个警告不会造成上传失败,也不会造成审核被拒。其次可以通过移除代码中警告的那些代码,并移除多余不使用的系统类库(framework),使警告消失。...解决办法:可通过退出模拟器再次运行项目,重新调用出模拟器。不用重置模拟器。 3. Archive 后点击 validation按钮后出现如下报错。...Security Settings 结果使用SDWebImage加载图片 在iOS10、iOS11手机上、模拟器上都是显示的,可是在 iOS9的手机上就是不显示,无奈再次在info.plist中就没有设置...Mac下一直ping下去,可以使用 control+C 来取消 ping操作。...但是谷歌代理设置还在,所以导致的。 解决方法 把浏览器的代理设置关闭使用代理,在ie 右上角 设置》internet选项》连接》局域网设置 把使用自动代理去掉就行了。

    1.1K10

    iOS开发·由SDWebImage引发的知识点聚合与思考(最新呕心沥血之作)

    前面的话 引言 学习iOS的各种知识点,例如runloop,只懂原理不行,要清楚明白它的应用场景才是真懂;学习SDWebImage的框架源码,只看SDWebImage的业务逻辑,也不是真懂。...写这篇文章的起因 有人问我,在优化UITableView的时候,滑动屏幕时,SDWebImage暂停下载吗?如果,那是怎样实现的,如果不会,那自己又怎么实现?...但有人分不清这是不同的线程(我也曾经被误导),如是就有人说,基于NSURLConnection的SDWebImage因为工作在主线程并指定了其mode,所以屏幕滑动导致主线程的runloop切换mode...,因而导致defaultMode上的SDWebImage的操作暂停。...“因为它通过CFRunLoopInMode(...)这样的方式指定了主线程runloop的mode,所以滑动屏幕切换runloop的mode从而导致SDWebImage暂停”。

    2.1K40

    解决 Flutter 引起的 iOS 内存崩溃问题

    有的则是申请内存失败,导致后续逻辑错误的崩溃。 结合「处处开花,多点爆破」的情况来看,应该是某种偏底层的内存管理问题。这就有点挠头了,因为这个版本并没有做什么内存相关的改动。...中做了什么改动,导致了内存崩溃问题。...有一个经典案例: SDWebImage[1] 是 iOS 开发中常用的第三方图片缓存库,它会将使用过的图片缓存在内存中,以供后续快速复用,同时在内存紧张的时候释放掉缓存。...当内存峰值来临时,系统会发送一个内存警告SDWebImage 在收到警告的时候会选择释放掉缓存。还记得吗?释放之前要先解压,才能释放。...参考资料 [1]SDWebImage: https://github.com/SDWebImage/SDWebImage [2]第一个帖子: https://github.com/flutter/flutter

    1.6K10

    源码分析之SDWebImage(一)

    SDWebImage是iOS开发者最常用的第三方框架之一,用于异步下载网络图片,缓存图片,Github源码地址 一、架构 sd_setImageWithURL:UIimageView/UIButton...library把失败的url加入黑名单(简单来说如果选择了这个flag,那么即使某个url下载失败了,sdwebimage还是尝试再次下载他 SDWebImageLowPriority = 1 « ...1,:默认情况下,图片会在交互发生的时候下载(例如你滑动tableview的时候),这个flag禁止这个特性,导致的结果就是在scrollview减速的时候,才会开始下载(也就是你滑动的时候scrollview....并且缓存侧略依据NSURLCache而不是SDWebImage.URL不变,图片更新时使用 SDWebImageContinueInBackground = 1 « 5,:启动后台下载,加入你进入一个页面...} 如果当前线程已经是主线程了,那么在调用dispatch_async(dispatch_get_main_queue(), block)有可能会出现crash 如果当前线程是主线程,直接调用,如果不是

    63720

    iOS 组件化开发(二):远程私有库的更新与子库

    'AFNetworking', '~> 3.2.0' s.dependency 'SDWebImage', '~> 4.3.3' 修改后更新操作同上所述,这里就不再赘述了。...但是这里存在一个问题,如果来了一位新的小伙伴,他所负责的部分只需要LXFBase下的Category,而LXFBase下的Cache才需要依赖SDWebImage,此时他若是pod一整个LXFBase岂不是平白无故安装了第三方依赖库...这里我们可以搜索一下SDWebImage pod search 'SDWebImage' ?...Subspecs 可以看到,如果我们只需要用到SDWebImage中的GIF功能,那么并不需要将整个SDWebImage都下载下来,在Podfile中将pod 'SDWebImage' 改为 pod SDWebImage...t.source_files = 'LXFBase/Classes/Tool/**/*' end 修改后再按之前的步骤更新索引库和组件库就可以了 ps: 在添加第三方依赖描述后做验证或者上传操作可能很慢

    1.7K20

    iOS 客户端动图优化实践

    崩溃的原因是, 端内加载图片时会在异步线程提前解码, 短时间内解码大量动图帧快速消耗掉可用内存, 在触发系统的 MemoryWarning 通知之前就直接导致 NSMallocException(Failed...使用这套方案加载动图有如下三个问题: 当且仅当所有帧图片都加载完毕时,才能够显示, 特别是在做异步解码的时候, 导致动图首帧加载时长较长. 不同帧的展示时长一样,使得动图失真....(最大公约数方案可解决) 在背景线程解析出所有帧, 此时如果对帧不做解码造成卡顿, 但是做异步解码, 小内存的机型直接内存暴涨导致崩溃, 因此在线上只能灰度开启....Cell 复用的场景下, YYAnimatedImageView 不断解析图片导致 CPU 消耗过高....对比各种开源方案 改造完成后, 新的方案性能是不是要优于主流的方案呢?

    5.4K40

    SDWebImage 引发的 cell不断下拉引起的闪退 卡顿

    为了弄清楚是怎么回事,我查了很多资料 ,也看了很多国外的博客 ,后来终于让我发现了问题所在,废话不多说 ,听我细细道来 1.首先是SDwebimage的原理: ---- UIImageView+WebCache...如果上一操作从硬盘读取到了图片,将图片添加到内存缓存中(如果空闲内存过小,先清空内存缓存)。...UIApplicationWillTerminateNotification,在内存警告的时候清理内存图片缓存,应用结束的时候清理过期图片。...从而不断的调用这个压缩的方法  就会导致内存 极具增大  但 sd 自带的释放内存的方法  缺不能触发 ,导致app 闪退 ---- 3.解决办法就是 ?...所以在收到内存警告的时候清除缓存就可以了 。好了  至此这 问题就解决了。

    1.3K20

    源码分析之SDWebImage(二)

    SDWebImage是iOS开发者最常用的第三方框架之一,用于异步下载网络图片,缓存图片,Github源码地址 三、核心架构 四、缓存策略 1、SDImageCacheConfig 这是默认的缓存策略...UIApplicationDidReceiveMemoryWarningNotification object:nil]; #endif } @end 可以看到,内存缓存类AutoPurgeCache里有一个接收系统通知,如有内存报警,移除全部...:框架内部监听系统内存警告的通知,当发生后移除内存缓存中的所有对象 下载队列中对多个图片任务的处理方式:提供了FIFO和LIFO两种方式,默认为FIFO 如何下载图片:采用NSURLConnection...如果是在iOS上运行,SDImageCache 在初始化的时候注册notification 到 UIApplicationDidReceiveMemoryWarningNotification 以及...UIApplicationWillTerminateNotification,在内存警告的时候清理内存图片缓存,应用结束的时候清理过期图片。

    49020
    领券