用SDWebImage渐变加载图片
用SDWebImage渐变加载图片

使用
使用请详细查看源码,只需要给定一个图片地址以及一个placeHolder图片(非必须)即可。
效果

源码
https://github.com/YouXianMing/UI-Component-Collection 中的 SDWebImageViewPlaceHorder
//
// PlaceholderImageView.h
// SDWebImageViewPlaceHorder
//
// Created by YouXianMing on 16/8/19.
// Copyright © 2016年 YouXianMing. All rights reserved.
// #import <UIKit/UIKit.h> @interface PlaceholderImageView : UIView /**
* Picture's url string.
*/
@property (nonatomic, strong) NSString *urlString; /**
* The placeholder's image.
*/
@property (nonatomic, strong) UIImage *placeholderImage; /**
* Default is UIViewContentModeScaleAspectFill.
*/
@property (nonatomic) UIViewContentMode placeholderImageContentMode; /**
* Default is UIViewContentModeScaleAspectFill.
*/
@property (nonatomic) UIViewContentMode contentImageContentMode; /**
PlaceholderImageView's constractor. @param frame The Frame.
@param image The placeholderImage.
@return The PlaceholderImageView's instancetype.
*/
+ (instancetype)placeholderImageViewWithFrame:(CGRect)frame placeholderImage:(UIImage *)image; @end
//
// PlaceholderImageView.m
// SDWebImageViewPlaceHorder
//
// Created by YouXianMing on 16/8/19.
// Copyright © 2016年 YouXianMing. All rights reserved.
// #import "PlaceholderImageView.h"
#import "UIImageView+WebCache.h" @interface PlaceholderImageView () @property (nonatomic, strong) UIImageView *placeHoderImageView;
@property (nonatomic, strong) UIImageView *contentImageView;
@property (nonatomic, strong) NSString *pUrlString; @end @implementation PlaceholderImageView - (void)layoutSubviews { [super layoutSubviews];
self.placeHoderImageView.frame = self.bounds;
self.contentImageView.frame = self.bounds;
} - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { self.layer.masksToBounds = YES; self.placeHoderImageView = [[UIImageView alloc] initWithFrame:self.bounds];
self.contentImageView = [[UIImageView alloc] initWithFrame:self.bounds]; [self addSubview:self.placeHoderImageView];
[self addSubview:self.contentImageView]; self.contentImageContentMode = UIViewContentModeScaleAspectFill;
self.placeholderImageContentMode = UIViewContentModeScaleAspectFill;
} return self;
} + (instancetype)placeholderImageViewWithFrame:(CGRect)frame placeholderImage:(UIImage *)image { PlaceholderImageView *placeHolderImageView = [[PlaceholderImageView alloc] initWithFrame:frame];
placeHolderImageView.placeholderImage = image; return placeHolderImageView;
} #pragma mark - Setter & Getter. - (void)setPlaceholderImage:(UIImage *)placeholderImage { _placeHoderImageView.image = placeholderImage;
} - (UIImage *)placeholderImage { return _placeHoderImageView.image;
} - (void)setUrlString:(NSString *)urlString { _pUrlString = urlString;
_contentImageView.alpha = .f; NSURL *url = [NSURL URLWithString:urlString];
[_contentImageView sd_setImageWithURL:url completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) { if (image) { // Image load from disk or download from network.
if (cacheType == SDImageCacheTypeNone || cacheType == SDImageCacheTypeDisk) { [UIView animateWithDuration:0.5f animations:^{ _contentImageView.alpha = .f;
}]; } else { _contentImageView.alpha = .f;
}
}
}];
} - (NSString *)urlString { return _pUrlString;
} - (void)setPlaceholderImageContentMode:(UIViewContentMode)placeholderImageContentMode { _placeHoderImageView.contentMode = placeholderImageContentMode;
} - (UIViewContentMode)placeholderImageContentMode { return _placeHoderImageView.contentMode;
} - (void)setContentImageContentMode:(UIViewContentMode)contentImageContentMode { _contentImageView.contentMode = contentImageContentMode;
} - (UIViewContentMode)contentImageContentMode { return _contentImageView.contentMode;
} @end
用SDWebImage渐变加载图片的更多相关文章
- 李洪强iOS开发之 - 实现九宫格并使用SDWebImage下载图片
李洪强iOS开发之 - 实现九宫格并使用SDWebImage下载图片 源码: // // ViewController.m // 08-九宫格扩展 // // Created by 李洪强 ...
- SDWebImage实现图片缓存
我之前写过一篇博客,介绍缓存处理的三种方式,其中最难,最麻烦,最占内存资源的还是图片缓存,最近做的项目有大量的图片处理,还是采用了SDWebImage来处理,但是发现之前封装好的代码报错了.研究发现, ...
- SDWebImage下载图片的使用
第一步,下载SDWebImage,导入工程.github托管地址https://github.com/rs/SDWebImage 第二步,在需要的地方导入头文件 1 #import "UII ...
- SDWebImage下载图片有时候无法成功显示出来
之前用下面的方法现在图片,有时候会出现图片没有下载成功显示: - (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)p ...
- SDWebImage清除图片缓存
背景: 使用 SDWebImage 库,由于内存中一直缓存着加载的图片,而导致内存过高(我们无法手动管理内存),弹出内存警告而导致程序很卡或者直接crash掉. 我的解决方法: 在AppDelegat ...
- 使用SDWebImage下载图片,sharedDownloader方法下载成功,new 方法下载失败
一,经历 1.使用 new 方法创建下载对象时,下载图片总是失败,而且不会执行成功或失败后的回调. 2.参考别人的代码,用的是sharedDownloader来创建下载对象,可以顺利下载图片. 3.看 ...
- SDWebImage缓存图片的机制(转)
SDWebImage是一个很厉害的图片缓存的框架.既ASIHttp+AsyncImage之后,我一直使用AFNetworking集成的UIImageView+AFNetworking.h,但后者对于图 ...
- SDWebImage缓存图片的机制
SDWebImage是一个很厉害的图片缓存的框架.既ASIHttp+AsyncImage之后,我一直使用AFNetworking集成的UIImageView+AFNetworking.h,但后者对于图 ...
- sdwebimage缓存图片
当使用SDWebImage时,如果用相同图片名的图片替换掉了原始缓存的图片,当再次请求的时候,还是使用的缓存图片,图片不会发生改变 原因:图片在NSCache中是以absolute url作为key存 ...
随机推荐
- IE下Debug BHO
主要就是修改注册表键值使IE不创建多个进程:HKLM\Software\Microsoft\Internet Explorer\Main - TabProcGrowth 但需要注意的是这种情况下,vs ...
- (Python) 安装、基本语法
从今天起,我将开启python学习模式,并用博客记录学习的过程和相关知识点 1.Python下载安装 可以在官网:https://www.python.org/downloads/ 中下载各种版本的P ...
- iOS遍历程序内某个文件夹下所有文件的属性
项目中有个文件管理系统,在做本地文件管理操作的时候,遇到了遍历本地文件的问题 遍历到的文件有些不需要显示,而且需要得到文件的相关属性,在此总结下. //查找需要遍历文件夹的目录 NSString *k ...
- jsp 和jspf
http://www.cnblogs.com/liaojie970/p/5035077.html
- C# 特殊处理使用方法
1.时间处理 Model.PiDaiTime.ToString("yyyyMMdd") == "00010101" ? DateTime.Now.ToStrin ...
- 最短路算法 (bellman-Ford算法)
贝尔曼-福特算法与迪科斯彻算法类似,都以松弛操作为基础,即估计的最短路径值渐渐地被更加准确的值替代,直至得到最优解.在两个算法中,计算时每个边之间的估计距离值都比真实值大,并且被新找到路径的最小长度替 ...
- python基础语法(3)
七.面向对象编程 python支持面向对象编程:类和对象是面向对象编程的两个主要方面,类创建一个新的类型,对象是这个类的实例. 对象可以使用普通的属于对象的变量存储数据,属于对象或类的变量被称为域:对 ...
- Monte Carlo 数值积分
var amount = 0.0d; var hitTheTargetCount = 0.0d; var M = 2.0d; var rnd=new Random(); ; i < ; i++) ...
- ThinkPHP 模板判断输出--Switch 标签
ThinkPHP 模板引擎支持 switch 判断,根据不同情况输出不同的值,格式如下:<switch name="变量名" > <case value=& ...
- JSHint 使用说明
SHint介绍 翻译自www.jshint.comJSHint(注意不是jslint:))是一个由javascript社区驱动开发的用于检查javascript代码错误和问题的工具,有了他,可以使你保 ...