SDWebImage加载图片添加淡入淡出动画
来源:互联网 发布:苹果7蜂窝移动数据设置 编辑:程序博客网 时间:2024/06/06 23:39
话不多说,直接改UIImageView+WebCache.m 的这个方法
- (void)sd_setImageWithURL:(nullableNSURL *)url
placeholderImage:(nullableUIImage *)placeholder
options:(SDWebImageOptions)options
progress:(nullableSDWebImageDownloaderProgressBlock)progressBlock
completed:(nullableSDExternalCompletionBlock)completedBlock {
// [self sd_internalSetImageWithURL:url
// placeholderImage:placeholder
// options:options
// operationKey:nil
// setImageBlock:nil
// progress:progressBlock
// completed:completedBlock];
///图片加载的淡入淡出效果
[selfsd_cancelCurrentImageLoad];
objc_setAssociatedObject(self, &imageURLKey, url,OBJC_ASSOCIATION_RETAIN_NONATOMIC);
if (!(options &SDWebImageDelayPlaceholder)) {
dispatch_main_async_safe(^{
self.image = placeholder;
});
}
if (url) {
// check if activityView is enabled or not
if ([selfsd_showActivityIndicatorView]) {
[selfsd_addActivityIndicator];
}
__weak __typeof(self)wself =self;
id <SDWebImageOperation> operation = [SDWebImageManager.sharedManagerloadImageWithURL:url options:optionsprogress:progressBlock completed:^(UIImage *image,NSData *data, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
[wself sd_removeActivityIndicator];
if (!wself) return;
dispatch_main_async_safe(^{
if (!wself) return;
if (image && (options & SDWebImageAvoidAutoSetImage) && completedBlock)
{
completedBlock(image, error, cacheType, url);
return;
}
else if (image) {
CATransition *animation = [CATransition animation];
animation.duration = .85f;
animation.type = kCATransitionFade;
animation.removedOnCompletion = YES;
[wself.layer addAnimation:animation forKey:@"transition"];
wself.image = image;
[wself setNeedsLayout];
} else {
if ((options & SDWebImageDelayPlaceholder)) {
wself.image = placeholder;
[wself setNeedsLayout];
}
}
if (completedBlock && finished) {
completedBlock(image, error, cacheType, url);
}
});
}];
[self.layerremoveAnimationForKey:@"transition"];
[selfsd_setImageLoadOperation:operation forKey:@"UIImageViewImageLoad"];
} else {
dispatch_main_async_safe(^{
[self sd_removeActivityIndicator];
if (completedBlock) {
NSError *error = [NSError errorWithDomain:SDWebImageErrorDomain code:-1 userInfo:@{NSLocalizedDescriptionKey :@"Trying to load a nil url"}];
completedBlock(nil, error, SDImageCacheTypeNone, url);
}
});
}
}
- SDWebImage加载图片添加淡入淡出动画
- 使用sdWebImage实现对tableView的cell加载图片淡入淡出效果
- SDWebImage 淡入淡出效果
- iOS 利用SDWebImage做简单的淡入淡出动画
- JavaScript 动画之图片淡入淡出
- [Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画
- iOS开发使用sdWebImage实现对tableView的cell加载图片淡入动画
- 淡入淡出UIView动画
- Android 淡入淡出动画
- 图片淡入淡出
- jquery图片淡入淡出
- 图片淡入淡出效果
- Java 图片淡入淡出
- 淡入淡出图片
- android学习(十八) 添加动画(一)淡入淡出的视图
- Android AlertDialog淡入淡出动画
- jQuery的动画-淡入淡出
- jQuery动画-淡入和淡出
- input输入框只能输入数字,只能输入字母数字组合
- Select2插件的使用(绑定数据源)
- ps cs6调油画效果教程
- windows10下使用idea远程调试hadoop集群
- 用Word编辑一个长文档时如何有层次感让文字看起来有条理性
- SDWebImage加载图片添加淡入淡出动画
- 《深入理解Java虚拟机》读书笔记
- Leetcode题解-561. Array Partition I
- 针对oracle中in操作超过1000个参数 会抛异常 处理实例
- 可信计算技术理论与应用研究概述
- js实现生成一个指定长度为n且随机不重复的数组
- jqGrid自适应展示不同列数
- 在Notepad++中使用正则表达式替换文本
- 关于recycleView的java.lang.IllegalArgumentException异常问题