用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渐变加载图片的更多相关文章

  1. 李洪强iOS开发之 - 实现九宫格并使用SDWebImage下载图片

     李洪强iOS开发之 - 实现九宫格并使用SDWebImage下载图片  源码:  // //  ViewController.m //  08-九宫格扩展 // //  Created by 李洪强 ...

  2. SDWebImage实现图片缓存

    我之前写过一篇博客,介绍缓存处理的三种方式,其中最难,最麻烦,最占内存资源的还是图片缓存,最近做的项目有大量的图片处理,还是采用了SDWebImage来处理,但是发现之前封装好的代码报错了.研究发现, ...

  3. SDWebImage下载图片的使用

    第一步,下载SDWebImage,导入工程.github托管地址https://github.com/rs/SDWebImage 第二步,在需要的地方导入头文件 1 #import "UII ...

  4. SDWebImage下载图片有时候无法成功显示出来

    之前用下面的方法现在图片,有时候会出现图片没有下载成功显示: - (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)p ...

  5. SDWebImage清除图片缓存

    背景: 使用 SDWebImage 库,由于内存中一直缓存着加载的图片,而导致内存过高(我们无法手动管理内存),弹出内存警告而导致程序很卡或者直接crash掉. 我的解决方法: 在AppDelegat ...

  6. 使用SDWebImage下载图片,sharedDownloader方法下载成功,new 方法下载失败

    一,经历 1.使用 new 方法创建下载对象时,下载图片总是失败,而且不会执行成功或失败后的回调. 2.参考别人的代码,用的是sharedDownloader来创建下载对象,可以顺利下载图片. 3.看 ...

  7. SDWebImage缓存图片的机制(转)

    SDWebImage是一个很厉害的图片缓存的框架.既ASIHttp+AsyncImage之后,我一直使用AFNetworking集成的UIImageView+AFNetworking.h,但后者对于图 ...

  8. SDWebImage缓存图片的机制

    SDWebImage是一个很厉害的图片缓存的框架.既ASIHttp+AsyncImage之后,我一直使用AFNetworking集成的UIImageView+AFNetworking.h,但后者对于图 ...

  9. sdwebimage缓存图片

    当使用SDWebImage时,如果用相同图片名的图片替换掉了原始缓存的图片,当再次请求的时候,还是使用的缓存图片,图片不会发生改变 原因:图片在NSCache中是以absolute url作为key存 ...

随机推荐

  1. Jmeter应用初步介绍

    一.工具介绍 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动态资 ...

  2. python 中 深拷贝和浅拷贝的理解

    在总结 python 对象和引用的时候,想到其实 对于python的深拷贝和浅拷贝也可以很好对其的进行理解. 在python中,对象的赋值的其实就是对象的引用.也就是说,当创建一个对象,然后赋给另外一 ...

  3. (转)combogrid的代码实例

    EasyUI中combogrid的代码实例 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  4. 元数据集 DatabaseMetaData ResultSetMetaData

  5. Python成长笔记 - 基础篇 (五)

    1.装饰器: 装饰器:器代表函数的意思,装饰器就是一个函数,作用是用来装饰其他的函数 原则: 1.不能修改被装饰函数的源代码 2.不能修改被装饰函数的调用方式 实现装饰器所需要的知识: 1.函数即变量 ...

  6. Ubuntu: 为firefox安装flash插件

    下载对应的tar.gz包后,将里边的libflashplayer.so粘贴到/usr/lib/mozilla/plugins中后重启firefox即可.

  7. C#学习之Linq to Xml

    前言 我相信很多从事.NET开发的,在.NET 3.5之前操作XML会比较麻烦,但是在此之后出现了Linq to Xml,而今天的主人公就是Linq to Xml,废话不多说,直接进入主题. 题外:最 ...

  8. solr与.net系列课程(一)solr的安装与配置

    不久之前开发了一个项目,需要用到solr,因为所以在开始再网上查找资料,但是发现大部分的资料都是很片面的,要么就是只讲解solr如何安装的,要么就是只讲解solr的某一个部分的,而且很多都是资料都是一 ...

  9. 检查密码复杂度的C#正则表达式

    在用户注册与修改.重置密码时,强制密码达到一定的复杂度,是减少盗号的有效措施之一. 而在代码中检查密码复杂度就需要用到正则表达式,比如要求密码必须包含数字.小写或大写字母.特殊字符.字符数在8-30之 ...

  10. kali linux 系列教程之metasploit 连接postgresql可能遇见的问题

    kali linux 系列教程之metasploit 连接postgresql可能遇见的问题 文/玄魂   目录 kali linux 下metasploit 连接postgresql可能遇见的问题. ...