KIImageViewer 0.0.6

KIImageViewer 0.0.6

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2017 年 4 月

smartwalle 维护。



 
依赖
SDWebImage>= 0
KIActionSheet>= 0
 

  • SmartWalle

Dependency Status Reference Status

此库提供了一个支持缓存的异步图像下载器。为了方便,我们为 UI 元素如 UIImageViewUIButtonMKAnnotationView 添加了分类。

特性

  • [x] 为 UIImageViewUIButtonMKAnnotationView 添加网络图像和缓存管理分类
  • [x] 异步图像下载器
  • [x] 异步内存+磁盘图像缓存,带有自动缓存过期处理
  • [x] 后台图像解压缩
  • [x] 确保相同的 URL 不会下载多次
  • [x] 确保无效的 URL 不会被反复尝试
  • [x] 确保主线程永远不会被阻塞
  • [x] 性能
  • [x] 使用 GCD 和 ARC

支持的图像格式

  • 由 UIImage 支持的图像格式(JPEG、PNG、...),包括 GIF
  • WebP 格式,包括动画 WebP(使用 WebP 子规范)

要求

  • iOS 7.0 或更高版本
  • tvOS 9.0 或更高版本
  • watchOS 2.0 或更高版本
  • OS X 10.8 或更高版本
  • Xcode 7.3 或更高版本

向后兼容性

入门

谁在使用它

交流

  • 如果您需要帮助,请使用Stack Overflow。(标签'sdwebimage')
  • 如果您想问一个一般性的问题,请使用Stack Overflow
  • 如果您发现了一个bug,请提交一个issue。
  • 如果您有功能请求,请提交一个issue。
  • 如果您 want to contribute to contribute,请提交一个pull request。

如何使用

Objective-C:

#import <SDWebImage/UIImageView+WebCache.h>
...
[imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
             placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
Swift:

@import SDWebImage

imageView.sd_setImage(with: URL(string: "http://www.domain.com/path/to/image.jpg"), placeholderImage: UIImage(named: "placeholder.png"))

动画图像(GIF)支持

  • 从4.0版开始,我们依赖FLAnimatedImage来处理我们的动画图像。
  • 要使用它,只需确保您使用FLAnimatedImageView而不是UIImageView
  • 注意:有一个向后兼容的功能,因此如果您仍然尝试将GIF加载到UIImageView中,它只显示第1帧作为静态图像。
  • 重要:FLAnimatedImage仅在iOS平台上工作,因此对于所有其他平台(OS X、tvOS、watchOS),我们将回退到上述描述的向后兼容功能。

常见问题

在UITableViewCell中使用动态图像大小

UITableView通过单元格的第一个图像集决定图像的大小。如果您的远程图像与占位图像的大小不同,您可能会遇到奇怪的畸变缩放问题。以下文章提供了一种绕过此问题的方法

http://www.wrichards.com/blog/2011/11/sdwebimage-fixed-width-cell-images/

处理图像刷新

SDWebImage默认进行非常积极的缓存。它忽略由HTTP服务器返回的所有类型的缓存控制头,并无限期地缓存返回的图像。这意味着您的图像URL是静态URL,指向永远不会改变的图像。如果所指向的图像恰好发生变化,一些URL的一部分应该相应地变化。

如果您无法控制您使用的图像服务器,您可能无法在内容更新时更改URL。例如,这是Facebook头像URL的情况。在这种情况下,您可以使用SDWebImageRefreshCached标志。这将略微降低性能,但将尊重HTTP缓存控制头。

[imageView sd_setImageWithURL:[NSURL URLWithString:@"https://graph.facebook.com/olivier.poitrey/picture"]
             placeholderImage:[UIImage imageNamed:@"avatar-placeholder.png"]
                      options:SDWebImageRefreshCached];

添加进度指示器

在调用sd_setImageWithURL之前添加这些。

[imageView setShowActivityIndicatorView:YES];
[imageView setIndicatorStyle:UIActivityIndicatorViewStyleGray];
imageView.setShowActivityIndicatorView(true)
imageView.setIndicatorStyle(.Gray)

安装

有三种方法在项目中使用SDWebImage

  • 使用CocoaPods
  • 使用Carthage
  • 通过将项目克隆到您的存储库

No

platform :ios, '7.0'
pod 'SDWebImage', '~>3.8'

如果您使用Swift,请确保添加 use_frameworks! 并设置目标为iOS 8+

platform :ios, '8.0'
use_frameworks!

子模块

目前有3个子模块可用:CoreMapKitWebP(这意味着您可以选择安装SDWebImage的某些模块。默认情况下您将获得 Core,所以如果需要 WebP,您需要指定它)。

Podfile 示例

pod 'SDWebImage/WebP'

Cartfile

github "rs/SDWebImage"

通过克隆仓库进行安装

在源文件中导入头文件

在需要使用库的源文件中导入头文件

#import <SDWebImage/UIImageView+WebCache.h>

构建项目

此时您的工作区应该能够无错误地构建。如果您遇到问题,请发布到问题区域,社区可以帮助您解决。

作者

合作者

许可

所有源代码均使用 MIT 许可证 许可。

架构