用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 = 0.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 = 1.f;}];} else {_contentImageView.alpha = 1.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渐变加载图片相关推荐

  1. iOS开发:利用SDWebImage实现图片加载与缓存

    iOS开发:利用SDWebImage实现图片加载与缓存 SDWebImage是一套开源框架,这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL ...

  2. SDWebImage 判断图片类型

    SDWebImage 判断图片类型 判断文件类型方法基本有两种: 通过文件后缀来判断 (简单,快捷 但是不准确,之前 公司android 客户端禁止用户上传 GIF , 前端默认可以播放 GIF ,有 ...

  3. iOS之SDWebimage下载图片链接带中文处理

    图片连接存到了一个数组中,下载一张添加一张.但是发现有时候只显示占位图不显示图片,刚开始以为是网络慢,下载需要一段时间,但是等了好久仍然没有.打断点查看了一下,原来是因为图片链接包含中文,这样的话下载 ...

  4. 使用SDWebImage清除图片缓存

    使用下面清除缓存的方法需要导入#import "SDImageCache.h" //清除缓存的点击方法 - (void)clearBtnClicked:(UIButton *)se ...

  5. com.android.kyj.onj,Android 自学之列表选择框Spinner

    列表选择框(Spinner)与Swing编程里面的Spinner不同,这里的Spinner其实就是一个列表选项框. Spinner是ViewGroup的间接子类,因此他也可作为容器使用. Spinne ...

  6. UITableView自动计算图片的高度 SDWebImage

    我们经常使用SDWebimage记载图片,主要记录在tableview中自动计算宽搞并加载图片 在cellforRow记载图片 -(UITableViewCell *)tableView:(UITab ...

  7. 解决SDWebimage加载过多过大图片导致内存爆表崩溃的问题

    问题: Restore the connection to "xxxx" and run "xx" again, or if "xx" is ...

  8. SDWebImage实现分析

    该博文来自南峰子的技术博客,文章从下载和缓存俩个大的组件分析到里面一些核心方法的实现,条理清晰,相对于一些一上来就通篇分析实现思路的技术文章, 这篇的讲解思路明确,框架架构也讲的比较清楚. 看完这篇再 ...

  9. SDWebImage常用方法及原理

    1 SDWebImage的最大并发数是多少? _downloadQueue.maxConcurrentOperationCount = 6; 2 SDWebImages是如何识别图片的? NSData ...

最新文章

  1. 京东如何基于Vitess管理大型MySQL实例集群
  2. libvirt 启动 qemu 的过程
  3. Ubuntu常见命令记录
  4. 海外IDC数据中心为什么要做REITs
  5. 摈弃 Windows 低效率的工作方式,发掘 Linux 身上的 UNIX 气质
  6. cadence导入dxf文件_DXF如何导入为图纸?
  7. 原生js添加class
  8. 惊喜来袭~进阶版《看漫画学Python 2:有趣、有料、好玩、好用》
  9. 微信内置浏览器禁止调整字体大小的方法
  10. 关于win10专业版无法下载暴雪战网的解决方案
  11. windows中nginx.exe注册为系统服务
  12. C# GDI+ 画心形 跳动动画
  13. 使用aria2为网盘下载加速
  14. 【Appium踩坑】关闭inspector后打开weditor,uiautomator2.exceptions.NullPointerExceptionError: -32001 Jsonrpc er
  15. Gridmanager
  16. 盘点行业 洞察大势 挥斥方遒 指点江山 洞见2018中国HR服务峰会惊艳业界
  17. 为MM32F3277G9P开发板搭建keil开发环境(包含J-Link下载)十七届智能车
  18. 51单片机led点阵C语言,51单片机驱动LED点阵扫描显示C语言程序
  19. ShadowPLCs A Novel Scheme for Remote Detection of Industrial Process Control Attacks
  20. [OC学习笔记]系统框架

热门文章

  1. Java异常处理:如何写出“正确”但被编译器认为有语法错误的程序
  2. kindeditor自定义插件插入视频代码
  3. openssl构建CA认证
  4. jquery利用appendTo动态创建元素
  5. 各种厂商打开bios按键总汇
  6. Oracle数据导入导出imp/exp命令 [转]
  7. 项目经理的第二手准备-坚强的挺着(4)
  8. 水很深的深度学习-Task05循环神经网络RNN
  9. python constructor_Python学习札记(2)——搭建Boa-constructor
  10. c语言c99标准_从年薪10万到年薪30万,C语言程序员必读的5本书