zoukankan      html  css  js  c++  java
  • YYWebImage——iOS异步图片加载框架

    本文转载至 http://www.mobile-open.com/2015/86582.html

     

    一个异步图片加载框架:YYWebImage

    YYWebImage 是一个异步图片加载框架 (YYKit 组件之一).

    其设计目的是试图替代 SDWebImage、PINRemoteImage、FLAnimatedImage 等开源框架,它支持这些开源框架的大部分功能,同时增加了大量新特性、并且有不小的性能提升。

    它底层用 YYCache 实现了内存和磁盘缓存, 用 YYImage 实现了 WebP/APNG/GIF 动图的解码和播放。

    你可以查看这些项目以获得更多信息。

    特性

    • 异步的图片加载,支持 HTTP 和本地文件。
    • 支持 WebP、APNG、GIF 动画。
    • 支持逐行扫描、隔行扫描、渐进式图像加载。
    • UIImageView、UIButton、MKAnnotationView、CALayer 的 Category 方法支持。
    • 常见图片处理:模糊、圆角、大小调整、裁切、旋转、色调等。
    • 高性能的内存和磁盘缓存。
    • 高性能的图片设置方式,以避免主线程阻塞。
    • 每个类和方法都有完善的文档注释。

    用法

    从 URL 加载图片

    1 <span style="font-size: medium;">// 加载网络图片
    2 imageView.yy_imageURL = [NSURL URLWithString:@"http://github.com/logo.png"];
    3  
    4 // 加载本地图片
    5 imageView.yy_imageURL = [NSURL fileURLWithPath:@"/tmp/logo.png"];</span>

    加载动图

    1 <span style="font-size: medium;">// 只需要把 `UIImageView` 替换为 `YYAnimatedImageView` 即可。
    2 UIImageView *imageView = [YYAnimatedImageView new];
    3 imageView.yy_imageURL = [NSURL URLWithString:@"http://github.com/ani.webp"];</span>

    渐进式图片加载

    1 <span style="font-size: medium;">// 渐进式:边下载边显示
    2 [imageView yy_setImageWithURL:url options:YYWebImageOptionProgressive];
    3  
    4 // 渐进式加载,增加模糊效果和渐变动画 (见本页最上方的GIF演示)
    5 [imageView yy_setImageWithURL:url options:YYWebImageOptionProgressiveBlur | YYWebImageOptionSetImageWithFadeAnimation];</span>

    加载、处理图片

    1 <span style="font-size: medium;">// 1. 下载图片
    2 // 2. 获得图片下载进度
    3 // 3. 调整图片大小、加圆角
    4 // 4. 显示图片时增加一个淡入动画,以获得更好的用户体验
    5  
    6 [imageView yy_setImageWithURL:url
    7     placeholder:nil
    8     options:YYWebImageOptionSetImageWithFadeAnimation
    9     progress:^(NSInteger receivedSize, NSInteger expectedSize) {
    10         progress = (float)receivedSize / expectedSize;
    11     }
    12     transform:^UIImage *(UIImage *image, NSURL *url) {
    13         image = [image yy_imageByResizeToSize:CGSizeMake(100, 100) contentMode:UIViewContentModeCenter];
    14         return [image yy_imageByRoundCornerRadius:10];
    15     }
    16     completion:^(UIImage *image, NSURL *url, YYWebImageFromType from, YYWebImageStage stage, NSError *error) {
    17         if (from == YYWebImageFromDiskCache) {
    18             NSLog(@"load from disk cache");
    19         }
    20     }];</span>

    安装

    Cocoapods

    1. 将 cocoapods 更新至最新版本.
    2. 在 Podfile 中添加pod "YYWebImage"。
    3. 执行pod install或pod update。
    4. 导入 <YYWebImage/YYWebImage.h>。

    Carthage

    1. 在 Cartfile 中添加github "ibireme/YYWebImage"。
    2. 执行carthage update --platform ios并将生成的 framework 添加到你的工程。
    3. 导入 <YYWebImage/YYWebImage.h>。
    4. 注意: carthage framework 并没有包含 webp 组件。如果你需要支持 webp,可以用 Cocoapods 安装,或者手动安装。

    手动安装

    1. 下载 YYWebImage 文件夹内的所有内容。
    2. 将 YYWebModel 内的源文件添加(拖放)到你的工程。
    3. 链接以下 frameworks:如果你需要支持 webp,可以将Vendor/WebP.framework(静态库) 加入你的工程。
      • UIKit.framework
      • CoreFoundation.framework
      • QuartzCore.framework
      • AssetsLibrary.framework
      • ImageIO.framework
      • Accelerate.framework
      • MobileCoreServices.framework
      • libsqlite3
      • libz
    4. 导入YYWebImage.h。

    ibireme / YYWebImage

    Watch1200 Fork156

    项目描述:Asynchronous image loading framework. — 查看更多内容...


     

    分支代码更新时间:2015-11-11

    开发语言:Objective-C

    ZIP文件下载
  • 相关阅读:
    如释重负(纪——写完作业论文)
    安装sql2005中文版时提示系统配置检查器失败,消息为“性能监视器计数器检查失败”
    Get ConnectString Form Web.config
    如何在ASP.NET中实现防盗链[转]
    Authentication and Authorization
    上传大步的自唱Music,绝对好听!
    "某个程序安装已在安装计算机上创建挂起的文件操作" 解决办法
    WebM给我们带来什么?H.264又给我们带来什么?Google不支持H.264对未来会产生怎样的影响? 人工智能
    机器学习初探 人工智能
    函数式编程学习之路(九) 人工智能
  • 原文地址:https://www.cnblogs.com/Camier-myNiuer/p/4958144.html
Copyright © 2011-2022 走看看