Latest 0.1.4
Homepage https://github.com/ToFind1991/TFImageBrowser
License MIT
Platforms ios 8.0, requires ARC
Frameworks UIKit
Authors

一个方便的图片浏览器,提供图片资源,可横向查看、切换图片。

使用

使用pod search "TFImageBrowser" --simple查找最新版,使用cocoapods集成。

github上的这个项目是使用实例+图片浏览器代码。


注意:让图片浏览器和SDWebImage共享缓存,打开EnableSDWebImageResolver宏。

#define EnableSDWebImageResolver   1  //启用SDWebImage解析图片

YYWebImage类似,开关宏为EnableYYWebImageResolver


1. 支持多种图片资源

  • 图片资源可以是字符串,如网络连接地址、本地文件或MainBundle内的图片名
  • 可以是系统的资源类型,如PHAssertALAssert
  • 也可以是UIImage类型

各种图片资源类型可以混合在同一组里,也就是同一次浏览的图片里可以同时包含网络图片、相册图片等。

2. 可以和其他的图片缓存库共享

如果你有一张图片,是用SDWebImage下载并管理缓存的,把这个图片的URL传给图片浏览器后,只需指定SDWebImage相关的解析器,就可以使用共享的缓存,而不会重新在下载一遍。

默认还有YYWebImage的解析器,可以让图片资源和YYWebImage共享。

3. 可显示iCloud原图

开启相册空间优化后,相册的图片会把原图保存在iCloud上,本地只是模糊的缩略图。

使用TFImageBrowser查看相册图片资源时,如果图片在iCloud上,会跟处理其他网络资源一样下载下来显示大图。

4. 支持双击放大查看等交互

  • 双击放大图片查看,并且根据点击位置,放大点击的区域。
  • 单击图片关闭图片浏览器
  • 长按图片回调事件
  • 支持横竖屏旋转

5. 自带过场动画

[self showImageBrowser:_browserVC 
fromRect:CGRectMake(40, 400, 30, 200) 
transitionDuration:0.25f 
showType:(TFImageBrowerShowTypePresentDismiss)];

使用上面方法来显示图片浏览器,会使用特定过场动画:右一块小区域逐渐放大到全屏,就像系统相册点击查看大图时那样。

6.可以配置的进度条

对于网络加载的图片资源,会不断反馈下载进度,如果配置了进度条,则会显示进度。

UIProgressView *progressBar = [[UIProgressView alloc] initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width/2.0 - 50, [UIScreen mainScreen].bounds.size.height/2.0, 100, 20)];
_browserVC.progressView = progressBar;

进度条只需要是UIView类型,并且实现了setProgress:方法即可。所以可以自定义任意的进度条提供给图片浏览器。

这个库还提供了一种圆形的进度条实现,可以自定义大小、颜色、环形宽度等。如:

关于项目框架

主体是图片浏览器TFImageBrowserViewController和显示每个图片的TFImageBrowserImageView

因为图片资源可以有多种不同的描述方式,所以定义了协议TFImageBrowserImageUri,每种实现这个协议的类都可描述一种图片资源类型,已有的类型是上面提到的3种。

提供给imageBrowser的数据是NSArray<id<TFImageBrowserImageUri>> *allImages,即都是抽象类型,然后每种图片资源该怎么得到图片数据,就靠解析器。解析器是实现协议TFImageUriDataResolver的类型,它的作用是接收一个imageUri,然后解析器负责把这个资源解析成UIImage,在回调给界面显示。

然后从图片数据到显示的逻辑都TFImageBrowserImageDisplayTool来负责,比如该请求缩略图还是大图、是否显示进度条等。

Latest podspec

{
    "name": "TFImageBrowser",
    "version": "0.1.4",
    "summary": "u56feu7247u5927u56feu6d4fu89c8u5668",
    "description": "u56feu7247u6d4fu89c8u5668uff0cu5b57u7b26u4e32u3001PHAssetu7b49u591au79cdu56feu7247u6765u6e90uff0cu53ccu51fbu7f29u653eu3001u8fc7u573au52a8u753bu3001u56feu7247u7f13u5b58.",
    "homepage": "https://github.com/ToFind1991/TFImageBrowser",
    "license": "MIT",
    "authors": {
        "shiwei": "[email protected]m"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source": {
        "git": "https://github.com/ToFind1991/TFImageBrowser.git",
        "tag": "0.1.4"
    },
    "source_files": "TFImageBrowser/PhotoBrowser/*.{h,m}",
    "frameworks": "UIKit",
    "requires_arc": true,
    "subspecs": [
        {
            "name": "ImageUri",
            "source_files": "TFImageBrowser/PhotoBrowser/ImageUri"
        },
        {
            "name": "Resolver",
            "dependencies": {
                "TFImageBrowser/ImageUri": []
            },
            "source_files": "TFImageBrowser/PhotoBrowser/Resolver"
        },
        {
            "name": "Utilities",
            "source_files": "TFImageBrowser/PhotoBrowser/utilities"
        }
    ]
}

Pin It on Pinterest

Share This