该文章阅读的SDWebImage的版本为4.3.3。

根据SDWebImage作者的描述,这个类是用来帮助创建动图的。

1.接口文件

  • 属性
/**当前帧的图像*/
@property (nonatomic, strong, readonly, nonnull) UIImage *image;
/**当前帧的展示时间,单位是秒*/
@property (nonatomic, readonly, assign) NSTimeInterval duration;
复制代码
  • 方法
/**以指定图像和时长实例化本类对象*/
+ (instancetype _Nonnull)frameWithImage:(UIImage * _Nonnull)image duration:(NSTimeInterval)duration;
复制代码

2.实现文件

  • 类扩展属性
@property (nonatomic, strong, readwrite, nonnull) UIImage *image;
@property (nonatomic, readwrite, assign) NSTimeInterval duration;
复制代码

因为接口文件中属性的关键字有readonly,是只读的,所以在类方法中就无法赋值,因此就在类扩展中添加可读写属性。

  • 方法实现
+ (instancetype)frameWithImage:(UIImage *)image duration:(NSTimeInterval)duration {// 可以看到这就是一个非常标准的工厂方法SDWebImageFrame *frame = [[SDWebImageFrame alloc] init];frame.image = image;frame.duration = duration;return frame;
}复制代码

3.总结

正如作者所说的,这个类就是一个辅助类,记录动图的每一帧及这一帧的展示时长,帮助创建动图。

源码阅读系列:SDWebImage

源码阅读:SDWebImage(一)——从使用入手

源码阅读:SDWebImage(二)——SDWebImageCompat

源码阅读:SDWebImage(三)——NSData+ImageContentType

源码阅读:SDWebImage(四)——SDWebImageCoder

源码阅读:SDWebImage(五)——SDWebImageFrame

源码阅读:SDWebImage(六)——SDWebImageCoderHelper

源码阅读:SDWebImage(七)——SDWebImageImageIOCoder

源码阅读:SDWebImage(八)——SDWebImageGIFCoder

源码阅读:SDWebImage(九)——SDWebImageCodersManager

源码阅读:SDWebImage(十)——SDImageCacheConfig

源码阅读:SDWebImage(十一)——SDImageCache

源码阅读:SDWebImage(十二)——SDWebImageDownloaderOperation

源码阅读:SDWebImage(十三)——SDWebImageDownloader

源码阅读:SDWebImage(十四)——SDWebImageManager

源码阅读:SDWebImage(十五)——SDWebImagePrefetcher

源码阅读:SDWebImage(十六)——SDWebImageTransition

源码阅读:SDWebImage(十七)——UIView+WebCacheOperation

源码阅读:SDWebImage(十八)——UIView+WebCache

源码阅读:SDWebImage(十九)——UIImage+ForceDecode/UIImage+GIF/UIImage+MultiFormat

源码阅读:SDWebImage(二十)——UIButton+WebCache

源码阅读:SDWebImage(二十一)——UIImageView+WebCache/UIImageView+HighlightedWebCache

源码阅读:SDWebImage(五)——SDWebImageFrame相关推荐

  1. Alibaba Druid 源码阅读(五)数据库连接池 连接关闭探索

    Alibaba Druid 源码阅读(五)数据库连接池 连接关闭探索 简介 在上文中探索了数据库连接池的获取,下面接着初步来探索下数据库连接的关闭,看看其中具体执行了那些操作 连接关闭 下面的具体的代 ...

  2. Mybatis源码阅读(五 ):接口层——SqlSession

    *************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...

  3. JDK7集合框架源码阅读(五) Hashtable

    基于版本jdk1.7.0_80 java.util.Hashtable 代码如下 /** Copyright (c) 1994, 2011, Oracle and/or its affiliates. ...

  4. HIVE源码阅读(五)

    1.HQL 是如何转换为MR任务 1.1.Hive 的核心组成介绍 用户接口:Client CLI(command-line interface).JDBC/ODBC(jdbc 访问 hive).WE ...

  5. WINVNC源码阅读(五)

    VNC图像更新机制 VNC的图像更新机制核心为,桌面区域更新记录策略和更新区域通知策略.桌面更新区域记录主要是通过hooks记录桌面上变化的矩形区域,只记录更新的矩形区不记录具体更新的数据.更新区域记 ...

  6. spring5源码阅读(五)Post Processors类型及作用详解

    文章目录 1. ConfigurationClassPostProcessor 1.1 BeanFactoryPostProcessor 1.2 BeanDefinitionRegistryPostP ...

  7. ORB-SLAM2的源码阅读(五):MapPoint类

    说太多,又要被说矫情了... #ifndef MAPPOINT_H #define MAPPOINT_H#include"KeyFrame.h" #include"Fra ...

  8. Gaea源码阅读(五):C客户端

    转载地址:http://blog.csdn.net/m_vptr/article/details/9245763 除了Java客户端外,Gaea还提供了C语言和.NET实现. 基本都是相同的,只是序列 ...

  9. Soul网关源码阅读(十)自定义简单插件编写

    Soul网关源码阅读(十)自定义简单插件编写 简介     综合前面所分析的插件处理流程相关知识,此次我们来编写自定义的插件:统计请求在插件链中的经历时长 编写准备     首先我们先探究一下,一个P ...

  10. Soul网关源码阅读(九)插件配置加载初探

    Soul网关源码阅读(九)插件配置加载初探 简介     今日来探索一下插件的初始化,及相关的配置的加载 源码Debug 插件初始化     首先来到我们非常熟悉的插件链调用的类: SoulWebHa ...

最新文章

  1. sharepoint 2013 自定义列表eventhandle权限控制
  2. php类可以遍历,在PHP中检测一个类是否可以被foreach遍历
  3. 测试一年多,上线就崩溃!微服务到底应该怎么测试?
  4. How product extension field is involved in search scenario
  5. React开发(178):ant design table基础用法
  6. Java集合之LinkedHashSet源码分析
  7. flume-ng 入 oracle,flume-ng-sql-source
  8. 2019年最吸引攻击炮火的 Web 框架:WordPress 和 Apache Struts
  9. Glib2之spec编译打包rpm(九)
  10. java.lang.Exception: Test class should have exactly one public constructor
  11. 小米便签源码分析——data包
  12. 微信小程序npm引用ui框架
  13. 一些常用外设DHT11,sg90
  14. 云开发数据库update函数控制台显示更新成功,但数据库中的数据并没有更新(已解决)
  15. 限制input输入字符数(中文2个字符,英文1个字符)
  16. 计算机网络 路由选择,路由选择
  17. EasyX窗口大小字号字体字体颜色的设置
  18. 水平滚动条和垂直滚动条设置
  19. ubuntu中截图工具shutter编辑按钮不可用
  20. 解决运行roscore时出现报错问题

热门文章

  1. Express框架中如何引用ejs模板引擎
  2. Exchange 2010部署
  3. SharedCache分析:服务端程序
  4. django 钉钉扫码登录
  5. ASP.NET MVC5总结(二)@HTML扩展
  6. Android LruCache技术原理
  7. Keepalived+nginx+redis主从+tomcat一机多实例实现会话共享
  8. 独家披露51CTO被黑过程:数据库已小范围流传
  9. It's hard to say goodbye, everyone.
  10. Python成绩单雷达图