一、 今日做项目遇到图片复用问题,返回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. p2p-如何拯救k8s镜像分发的阿喀琉斯之踵

    K8s的出现为PaaS行业的发展打了一针兴奋剂,Docker+k8s的技术路线已经成为了容器云的主流.尤其针对大流量,大弹性的应用场景来说,k8s将其从繁杂的运维.部署工作中彻底拯救出来.然而事情往往 ...

  2. 多线程下使用使用 UniDAC+MSSQL 需要注意的问题(使用CoInitialize)

    ADO线程不安全,UniDAC 在使用MSSQL也是如此.其实这是微软COM问题,不怪Devart公司. 一般解决方法是在线程开始启用 CoInitialize(nil),线程结束调用 CoUnini ...

  3. windown下linux子系统的安装和卸载

    原文:windown下linux子系统的安装和卸载 安装 第一步  打开开发人员模式 第二步  勾选适用linux的window子系统 第三步  打开powershell 第四步  在PowerShe ...

  4. Clojure实现的简单短网址服务(Compojure、Ring、Korma库演示样例)

    用clojure写了一个简单的短网址服务(一半抄自<Clojure 编程>).在那基础上增加了数据库,来持久化数据. 功能 用Get方法缩短一个网址: 然后在短网址列表就能够查看了, 接下 ...

  5. 用WPF实现在ListView中的鼠标悬停Tooltip显示

    原文:用WPF实现在ListView中的鼠标悬停Tooltip显示 一.具体需求描述 在WPF下实现,当鼠标悬停在ListView中的某一元素的时候能弹出一个ToolTip以显示需要的信息. 二.代码 ...

  6. 潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据

    原文:潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据 目前自己对treeview的感慨很多 今天先讲 面对这种 表结构的数据 的其中 ...

  7. IOS开发之关于NSString和NSMutableString的retainCount

    1. 字符串常量 NSString *s = @"test"; NSLog(@"s:%lx",[s retainCount]); //fffffffffffff ...

  8. QT pro 添加带空格的路径以及添加库文件的正确方法

    用这个:$$quote() 如何添加库?看下面添加mysql路径的例子: INCLUDEPATH += $$quote(C:\Program Files (x86)\MySQL\MySQL Serve ...

  9. xadmin 无法创建xadmin_log 或者是xadmin源代码使用,没有引用xadmin包报错或 1146, "Table 'mxonline.xadmin_log' doesn't exist"

    解决方案: 第一步:将xadmin所在的目录为source_root 第二步:在settings.py中引用xadmin所在的目录 第三步makemigrations和migrate 引起原因:主语是 ...

  10. Win8Metro(C#)数字图像处理--2.22二值图像膨胀

    原文:Win8Metro(C#)数字图像处理--2.22二值图像膨胀  [函数名称] 二值图像膨胀函数DilationProcess(WriteableBitmap src) [算法说明]  膨胀 ...