一、 今日做项目遇到图片复用问题,返回cell高度相同,由于网络不好出现图片复用,发现问题

 

Cell 图片加载方法如下:

- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder {

    [selfsd_setImageWithURL:url placeholderImage:placeholder options:0progress:nilcompleted:nil];

}

 

更改为:

- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options {

    [selfsd_setImageWithURL:url placeholderImage:placeholder options:options progress:nilcompleted:nil];

}

options 方法如下:

 

    /**

 

     * By default, when a URL fail to be downloaded, the URL is blacklisted so the library won't keep trying.

 

     * This flag disable this blacklisting.

     失败后重新下载

 

     */

 

    SDWebImageRetryFailed = 1 << 0,

    /**

 

     * By default, image downloads are started during UI interactions, this flags disable this feature,

 

     * leading to delayed download on UIScrollView deceleration for instance.

     Scrollview 滑动的时候,或者交互的时候,禁止下载图片,等非滑动时刻开始下载,默认情况下,图片会在交互发生的时候下载(例如你滑动tableview的时候),这个flag会禁止这个特性,导致的结果就是在scrollview减速的时候才会开始下载

 

     */

 

    SDWebImageLowPriority = 1 << 1,

    /**

 

     * This flag disables on-disk caching

     禁止磁盘缓存

 

     */

 

    SDWebImageCacheMemoryOnly = 1 << 2,

    /**

 

     * This flag enables progressive download, the image is displayed progressively during download as a browser would do.

 

     * By default, the image is only displayed once completely downloaded.

     图片逐步下载,这个flag会使图片边下载边显示,不用此方法是下载完成再一次性显示

 

     */

 

    SDWebImageProgressiveDownload = 1 << 3,

    /**

 

     * Even if the image is cached, respect the HTTP response cache control, and refresh the image from remote location if needed.

 

     * The disk caching will be handled by NSURLCache instead of SDWebImage leading to slight performance degradation.

 

     * This option helps deal with images changing behind the same request URL, e.g. Facebook graph api profile pics.

 

     * If a cached image is refreshed, the completion block is called once with the cached image and again with the final image.

 

     *

 

     * Use this flag only if you can't make your URLs static with embedded cache busting parameter.

     更换头像的时候使用 

 

     */

 

    SDWebImageRefreshCached = 1 << 4,

 

 

 

    /**

 

     * In iOS 4+, continue the download of the image if the app goes to background. This is achieved by asking the system for

 

     * extra time in background to let the request finish. If the background task expires the operation will be cancelled.

     返回后台继续下载图片

 

     */

    SDWebImageContinueInBackground = 1 << 5,

    /**

 

     * Handles cookies stored in NSHTTPCookieStore by setting

 

     * NSMutableURLRequest.HTTPShouldHandleCookies = YES;

     使用Cookies的方法

 

     */

    SDWebImageHandleCookies = 1 << 6,

 

    /**

 

     * Enable to allow untrusted SSL certificates.

 

     * Useful for testing purposes. Use with caution in production.

     允许不被信任的SSL证书

 

     */

    SDWebImageAllowInvalidSSLCertificates = 1 << 7,

 

 

 

    /**

 

     * By default, images are loaded in the order in which they were queued. This flag moves them to

 

     * the front of the queue.

     图片下载优先级最高,优先下载图片

 

     */

 

    SDWebImageHighPriority = 1 << 8,

    /**

 

     * By default, placeholder images are loaded while the image is loading. This flag will delay the loading

 

     * of the placeholder image until after the image has finished loading.

     默认情况下,占位图会在图片下载的时候显示.这个flag开启会延迟占位图显示的时间,等到图片下载完成之后才会显示占位图(有何意义?

 

     */

 

    SDWebImageDelayPlaceholder = 1 << 9,

    /**

 

     * We usually don't call transformDownloadedImage delegate method on animated images,

 

     * as most transformation code would mangle it.

 

     * Use this flag to transform them anyway.

     我们通常不会在动画图像上调用transformDownloadedImage委托方法,因为大多数转换代码会对它进行转换,使用此标志来转换它们

 

     */

 

    SDWebImageTransformAnimatedImage = 1 << 10,

 

    /**

 

     * By default, image is added to the imageView after download. But in some cases, we want to

 

     * have the hand before setting the image (apply a filter or add it with cross-fade animation for instance)

 

     * Use this flag if you want to manually set the image in the completion when success

     在图片下载完,显示处理之后的图片

 

     */

 

    SDWebImageAvoidAutoSetImage = 1 << 11

 

只言片语 - cell 图片复用问题的更多相关文章

  1. cell 的复用机制

    一个问题引发的血案,以下是本侦探的探案过程的一部分:以下全部都是转载自别人的博客:http://blog.sina.com.cn/s/blog_9c3c519b01016aqu.html 转自:htt ...

  2. cell的复用机制

    以下全部都是转载自别人的博客:http://blog.sina.com.cn/s/blog_9c3c519b01016aqu.html 转自:http://www.2cto.com/kf/201207 ...

  3. Cell的复用机制问题总结

    创建方式汇总,注册和不注册Cell注册的两种方式 1.tableView registerNib:(nullable UINib *) forCellReuseIdentifier:(nonnull ...

  4. Tableview 优化Cell的复用机制01

    #import "ViewController.h" @interface ViewController ()<UITableViewDataSource> @end ...

  5. tableView中cell的复用机制

    TableView的重用机制,为了做到显示和数据分离,IOS tableView的实现并且不是为每个数据项创建一个tableCell.而是只创建屏幕可显示最大个数的cell,然后重复使用这些cell, ...

  6. QF——UITableViewCell性能优化(视图复用机制)

    这几篇博客总结的不错: 点击进入 点击进入 总结起来方案一般有以下几种: 1.不使用透明视图: 2.减少视图的个数: 3.cell复用机制:(重点) 4.图片缓存: 5.网络请求使用非主线程. 6.预 ...

  7. iOS tableViewCell 在cell赋值、网络加载照片位置偏移大小错乱,做一个类似qq列表的tableview 更新3

    更新3: 问题 加载慢!(一时间给的处理负载过大,要分散)在下载图片,判断状态后 对每个cell对图片灰置图片处理保存,影响了主线程的操作 :上拉加载时,无法上下滑动tableview 无法点击cel ...

  8. Android加载图片小结

    应用中用到图片加载需要解决的问题 无网络环境下图片不可用 图片的本地缓存,或者默认预加载的图片 低配置机型,加载图像资源超内存(OutOfMemory, OoM) 需要合理使用内存,尤其是bitmap ...

  9. Swift - 表格图片加载优化(拖动表格时不加载,停止时只加载当前页图片)

    列表的单元格中包含有图片在开发中很常见.通常我们可以直接在tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIn ...

随机推荐

  1. 不要完全相信Chrome控制台打印的信息

    以下两张图,第一张是Chrome控制台Network里请求返回的信息,图二是在代码里在请求返回的处理第一行代码用console.log打印的信息. 图一 图二 那么问题来了,为何通过console.l ...

  2. git如何更新fork的repository(Fork一个别人的repository,做了一些改动,再合并别人的更新)

    Fork一个别人的repository,做了一些改动,想提交pull request的时候,发现原先别人的repository已经又有了一些更新了,这个时候想使得自己fork出的repository也 ...

  3. Matlab Tricks(二十四)—— title 置于图像之下(包括 subplots 的情形)

    1. 使用 title 的 'position' 属性进行设置 plot(1:10, 1:10), title('y=x', 'position', [5.5, 0]) 2. 使用 xlabel pl ...

  4. jquery即点击改

    $(document).on("click",".sp",function(){    var brand_id=$(this).attr("valu ...

  5. WPF去除边框的方法

    原文:WPF去除边框的方法 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yangsen600/article/details/81978125 W ...

  6. 查看系统中安装了那些dotnet core 的SDK和运行时的命令

    原文:查看系统中安装了那些dotnet core 的SDK和运行时的命令 1.查看SDK dotnet --list-sdks 2.查看运行时 dotnet --list-runtimes 效果如下图 ...

  7. JavaScript实现算法

    leetcode算法题(JavaScript实现)   题外话 刷了一段时间的codewars的JavaScript题目之后,它给我最大的感受就是,会帮助你迅速的提升你希望练习的语言的API的熟悉程度 ...

  8. 学习Hadoop和Spark的好的资源

    1. 官网http://spark.apache.org 有各种资源链接: 2. 总结得很好的个人博客[从零开始学Hadoop系列]1)初识http://blog.csdn.net/u01016816 ...

  9. OpenGl(二)点线设置、多边形镂空

    1. 改变点的大小 OpenGL中默认点的大小是1个像素,使用函数glPointSIze可以调整点的大小,入参是GLfloat,相当于是浮点数. 相关代码: void myDisplay(void) ...

  10. WPF绘制深度不同颜色的3D模型填充图和线框图

    原文:WPF绘制深度不同颜色的3D模型填充图和线框图 在机械测量过程中,测量的数据需要进行软件处理.通常测量一个零件之后,需要重建零件的3D模型,便于观察测量结果是否与所测工件一致. 重建的3D模型需 ...