该文章阅读的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(二)——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