該文章閱讀的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