一、 今日做项目遇到图片复用问题,返回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. 【records】10.24..10.30

    做的题越来越少了; 我是不是该学下网络流.

  2. spring sts4 如何添加tomcat 服务

    spring sts4 ide中已经没有集成tomcat运行服务器了,需要到点击Help-->Eclipse Marketplace中安装 Eclipse JST Server Adapters ...

  3. elasticsearch-jdbc

    jprante/elasticsearch-jdbc The Java Database Connection (JDBC) importer allows to fetch data from JD ...

  4. Failed during checkstyle execution: Unable to find suppressions file at location: src/checkstyle/checkstyle-suppressions.xml

    <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot ...

  5. http_load测试初阶

    http_load的标准的两个例子是: 1.         http_load -parallel 5 -fetches 1000 urls.txt 2.         http_load -ra ...

  6. Linux性能测试 ps命令

    名称:ps 使用权限:所有使用者 使用方式:ps [options] [--help] 说明:显示瞬间行程 (process) 的动态 参数: ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍 ...

  7. 从hadoop 要删除字符串匹配指定的任务

    我们都知道,假设 hadoop job -list 获取当前正在执行的hadoop 任务,返回的结果例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ ...

  8. Oracle使用dblink连接SqlServer

    使用场景:当你需要从ORACLE数据库上访问另一台SqlServer数据库的数据时,Oracle提供了一个工具:gateways.通过这个工具,你可以创建dblink来连接sqlserver或其他不同 ...

  9. Python科学计算(两)——时域波形和正弦信号的频谱

    Python科学计算(两)-- 时域和频域波形为正弦波形信号生成.计算和显示 # -*- coding: utf-8 -*- import numpy as np import matplotlib. ...

  10. Android Fragment——详细解释

    1.Fragment概述 在一个Activity中. Fragment代表UI的一个部分或者一个行为.一个Activity能够结合多个Fragment对象,也能够在多个activity中使用同样Fra ...