源码阅读:SDWebImage(五)——SDWebImageFrame
该文章阅读的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相关推荐
- Alibaba Druid 源码阅读(五)数据库连接池 连接关闭探索
Alibaba Druid 源码阅读(五)数据库连接池 连接关闭探索 简介 在上文中探索了数据库连接池的获取,下面接着初步来探索下数据库连接的关闭,看看其中具体执行了那些操作 连接关闭 下面的具体的代 ...
- Mybatis源码阅读(五 ):接口层——SqlSession
*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...
- JDK7集合框架源码阅读(五) Hashtable
基于版本jdk1.7.0_80 java.util.Hashtable 代码如下 /** Copyright (c) 1994, 2011, Oracle and/or its affiliates. ...
- HIVE源码阅读(五)
1.HQL 是如何转换为MR任务 1.1.Hive 的核心组成介绍 用户接口:Client CLI(command-line interface).JDBC/ODBC(jdbc 访问 hive).WE ...
- WINVNC源码阅读(五)
VNC图像更新机制 VNC的图像更新机制核心为,桌面区域更新记录策略和更新区域通知策略.桌面更新区域记录主要是通过hooks记录桌面上变化的矩形区域,只记录更新的矩形区不记录具体更新的数据.更新区域记 ...
- spring5源码阅读(五)Post Processors类型及作用详解
文章目录 1. ConfigurationClassPostProcessor 1.1 BeanFactoryPostProcessor 1.2 BeanDefinitionRegistryPostP ...
- ORB-SLAM2的源码阅读(五):MapPoint类
说太多,又要被说矫情了... #ifndef MAPPOINT_H #define MAPPOINT_H#include"KeyFrame.h" #include"Fra ...
- Gaea源码阅读(五):C客户端
转载地址:http://blog.csdn.net/m_vptr/article/details/9245763 除了Java客户端外,Gaea还提供了C语言和.NET实现. 基本都是相同的,只是序列 ...
- Soul网关源码阅读(十)自定义简单插件编写
Soul网关源码阅读(十)自定义简单插件编写 简介 综合前面所分析的插件处理流程相关知识,此次我们来编写自定义的插件:统计请求在插件链中的经历时长 编写准备 首先我们先探究一下,一个P ...
- Soul网关源码阅读(九)插件配置加载初探
Soul网关源码阅读(九)插件配置加载初探 简介 今日来探索一下插件的初始化,及相关的配置的加载 源码Debug 插件初始化 首先来到我们非常熟悉的插件链调用的类: SoulWebHa ...
最新文章
- sharepoint 2013 自定义列表eventhandle权限控制
- php类可以遍历,在PHP中检测一个类是否可以被foreach遍历
- 测试一年多,上线就崩溃!微服务到底应该怎么测试?
- How product extension field is involved in search scenario
- React开发(178):ant design table基础用法
- Java集合之LinkedHashSet源码分析
- flume-ng 入 oracle,flume-ng-sql-source
- 2019年最吸引攻击炮火的 Web 框架:WordPress 和 Apache Struts
- Glib2之spec编译打包rpm(九)
- java.lang.Exception: Test class should have exactly one public constructor
- 小米便签源码分析——data包
- 微信小程序npm引用ui框架
- 一些常用外设DHT11,sg90
- 云开发数据库update函数控制台显示更新成功,但数据库中的数据并没有更新(已解决)
- 限制input输入字符数(中文2个字符,英文1个字符)
- 计算机网络 路由选择,路由选择
- EasyX窗口大小字号字体字体颜色的设置
- 水平滚动条和垂直滚动条设置
- ubuntu中截图工具shutter编辑按钮不可用
- 解决运行roscore时出现报错问题