博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
YYWebImage的尝试
阅读量:5737 次
发布时间:2019-06-18

本文共 4013 字,大约阅读时间需要 13 分钟。

前一阵子某某大牛的YYKit 获得了无数的star, 一直也没时间尝试着使用。所以准备抽时间学习一下,优化一下自己的项目。Yeah!

我用的是cocopods管理三方库,简单快速,(网络好),也可以去github上自己下载。 上面其实就有使用的方法非常简单,但是本人还是尝试着用了一下。

第一步: #import <YYWebImage.h>     // 加载网络图片     _imageView.yy_imageURL = [NSURL URLWithString:ImageUrl];

// 加载本地图片     _imageView.yy_imageURL = [NSURL fileURLWithPath:@"/tmp/logo.png"];

// 只需要把 UIImageView 替换为 YYAnimatedImageView 即可。     UIImageView *imageView = [YYAnimatedImageView new];     imageView.yy_imageURL = [NSURL URLWithString:ImageUrl];

// 渐进式:边下载边显示     [imageView yy_setImageWithURL:[NSURL URLWithString:ImageUrl] options:YYWebImageOptionProgressive];

// 渐进式加载,增加模糊效果和渐变动画     [_imageView yy_setImageWithURL:[NSURL URLWithString:ImageUrl] options:YYWebImageOptionProgressiveBlur | YYWebImageOptionSetImageWithFadeAnimation | YYWebImageOptionRefreshImageCache]; 这里要重要的是这个枚举 我们可以点击=进去看一下作者给我们造好的轮子。 这里我只是把你里面的类型全部粘贴出来,就不一一说明了,大家可以回去自己体验一下。

/// The options to control image operation.  typedef NS_OPTIONS(NSUInteger, YYWebImageOptions) {复制代码

/// Show network activity on status bar when download image.     YYWebImageOptionShowNetworkActivity = 1 << 0,          /// Display progressive/interlaced/baseline image during download (same as web browser).     YYWebImageOptionProgressive = 1 << 1,          /// Display blurred progressive JPEG or interlaced PNG image during download.     /// This will ignore baseline image for better user experience.     YYWebImageOptionProgressiveBlur = 1 << 2,          /// Use NSURLCache instead of YYImageCache.     YYWebImageOptionUseNSURLCache = 1 << 3,          /// Allows untrusted SSL ceriticates.     YYWebImageOptionAllowInvalidSSLCertificates = 1 << 4,          /// Allows background task to download image when app is in background.     YYWebImageOptionAllowBackgroundTask = 1 << 5,          /// Handles cookies stored in NSHTTPCookieStore.     YYWebImageOptionHandleCookies = 1 << 6,          /// Load the image from remote and refresh the image cache.     YYWebImageOptionRefreshImageCache = 1 << 7,          /// Do not load image from/to disk cache.     YYWebImageOptionIgnoreDiskCache = 1 << 8,          /// Do not change the view's image before set a new URL to it.     YYWebImageOptionIgnorePlaceHolder = 1 << 9,          /// Ignore image decoding.     /// This may used for image downloading without display.     YYWebImageOptionIgnoreImageDecoding = 1 << 10,          /// Ignore multi-frame image decoding.     /// This will handle the GIF/APNG/WebP/ICO image as single frame image.     YYWebImageOptionIgnoreAnimatedImage = 1 << 11,          /// Set the image to view with a fade animation.     /// This will add a "fade" animation on image view's layer for better user experience.     YYWebImageOptionSetImageWithFadeAnimation = 1 << 12,          /// Do not set the image to the view when image fetch complete.     /// You may set the image manually.     YYWebImageOptionAvoidSetImage = 1 << 13,          /// This flag will add the URL to a blacklist (in memory) when the URL fail to be downloaded,     /// so the library won't keep trying.     YYWebImageOptionIgnoreFailedURL = 1 << 14, };

// 1. 下载图片     // 2. 获得图片下载进度     // 3. 调整图片大小、加圆角     // 4. 显示图片时增加一个淡入动画,以获得更好的用户体验

    [_imageView yy_setImageWithURL:[NSURL URLWithString:ImageUrl]复制代码

placeholder:nil                           options:YYWebImageOptionSetImageWithFadeAnimation                          progress:^(NSInteger receivedSize, NSInteger expectedSize) { //                             progress = (float)receivedSize / expectedSize;                          }                         transform:^UIImage *(UIImage *image, NSURL *url) {                             image = [image yy_imageByResizeToSize:CGSizeMake(375, 667) contentMode:UIViewContentModeCenter];                             return [image yy_imageByRoundCornerRadius:10];                         }                        completion:^(UIImage *image, NSURL *url, YYWebImageFromType from, YYWebImageStage stage, NSError *error) {                            if (from == YYWebImageFromDiskCache) {                                NSLog(@"load from disk cache");                            }                        }];

最后当然就是缓存了

YYImageCache *cache = [YYWebImageManager sharedManager].cache;

cache.memoryCache.totalCost;     cache.memoryCache.totalCount;     cache.diskCache.totalCost;     cache.diskCache.totalCount;

// clear cache     [cache.memoryCache removeAllObjects];     [cache.diskCache removeAllObjects];

// clear disk cache with progress     [cache.diskCache removeAllObjectsWithProgressBlock:^(int removedCount, int totalCount) {         // progress     } endBlock:^(BOOL error) {         // end     }];

转载地址:http://frwzx.baihongyu.com/

你可能感兴趣的文章
linux Ubuntu14.04 python(c++版本) tesorflow(python版本)c++
查看>>
Nginx 浏览器缓存
查看>>
html5-css的引入
查看>>
Spring AOP
查看>>
<基础> PHP 进阶之 函数(Function)
查看>>
强极则辱
查看>>
eslasticsearch操作集锦
查看>>
git stuff
查看>>
前端 -- margin的用法
查看>>
Ext Gridpanel的用法
查看>>
SQL结构化查询语言
查看>>
ES6:模块简单解释
查看>>
JavaScript indexOf() 方法
查看>>
Java 8 新特性:2-消费者(Consumer)接口
查看>>
用Bootstrap写一份简历
查看>>
ZJU PAT 1023
查看>>
20141031老板讲话总结
查看>>
WMI远程访问问题解决方法
查看>>
从零开始学习IOS,(UILabel控件)详细使用和特殊效果
查看>>
Android开发历程_15(AppWidget的使用)
查看>>