Skeets 是一个网络图像库,使用 Swift 通过 HTTP 获取、缓存和显示图像。它是基于 SwiftHTTP 构建的。
更多信息请看:[Vluxe](http://vluxe.io/skeets.html)
首先,导入框架。有关如何将框架添加到项目中,请参阅安装说明。
import Skeets
导入后,您就可以开始请求图像。
//create a imageView
let imageView = UIImageView(frame: CGRectMake(0, 60, 200, 200))
self.view.addSubview(imageView)
//set the cache directory. Only have to do this once since `sharedManager` is a singleton
let paths = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)
ImageManager.sharedManager.cache.diskDirectory = "\(paths[0])/ImageCache"
//for OSX
//let paths = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)
//ImageManager.sharedManager.cache.diskDirectory = "\(paths[0])/\(NSBundle.mainBundle().bundleIdentifier!)/ImageCache"
ImageManager.sharedManager.cache.cleanDisk()
//fetch the image
ImageManager.fetch("http://vluxe.io/assets/images/logo.png",
progress: { (status: Double) in
println("updating some UI for this: \(status)") //useful if you have some kind of progress dialog as the image loads
},success: { (data: NSData) in
println("got an image!")
imageView.image = UIImage(data: data) //set the image data
}, failure: { (error: NSError) in
println("failed to get an image: \(error)")
})
当需要时,可以取消获取请求。这仅会导致闭包不会调用。
ImageManager.cancel("http://vluxe.io/assets/images/logo.png")
Skeets 还支持自定义缓存和协议。您可以通过实现 CacheProtocol
来实现自己的自定义缓存。还有一个功能丰富的默认缓存,提供了一些定制选项。
let c = ImageManager.sharedManager.cache as? ImageCache
if let cache = c {
cache.diskAge = 60 * 60 //360 seconds or 1 hour (Default is 1 day).
cache.imageCount = 10 //only 10 images will be stored in memory (Default is 50).
}
还可以手动清理缓存(例如,收到内存警告)。
ImageManager.sharedManager.cache.clearCache()
磁盘也可以清理以删除可能的过时条目。
ImageManager.sharedManager.cache.cleanDisk()
Skeets 至少需要 iOS 8/OSX 10.10 或更高版本。
Skeets 依赖 SwiftHTTP。在使用 Skeets 之前,请确保导入该框架。
如果您遇到 Skeets 无法构建的问题,因为找不到 SwiftHTTP,请确保从构建下拉菜单手动选择 SwiftHTTP 框架并构建它。然后再次构建您的应用程序。这将解决SwiftHTTP找不到的问题。
首先,查看 安装文档 了解如何安装 Rogue。
要安装 Skeets,请在创建 rogue 文件所在的目录中运行以下命令。
rogue add https://github.com/daltoniam/SwiftHTTP
rogue add https://github.com/daltoniam/Skeets
接下来,打开 libs
文件夹,将 Skeets.xcodeproj
添加到您的 Xcode 项目中。完成后,在您的 "构建阶段" 中添加 Skeets.framework
到 "链接二进制库" 阶段。请确保将 libs
文件夹添加到您的 .gitignore
文件中。
只需获取框架(无论是通过 git 子模块还是其他包管理器)。
将 Skeets.xcodeproj
添加到您的 Xcode 项目中。完成后,在您的 "构建阶段" 中添加 Skeets.framework
到 "链接二进制库" 阶段。
如果您在 OS X 应用程序或物理 iOS 设备上运行此代码,您需要确保将 Skeets.framework
或 SkeetsOSX.framework
添加到应用程序捆绑包中。为此,在 Xcode 中,通过单击蓝色的项目图标,然后在侧边栏的 "目标" 下选择应用程序目标,导航到目标配置窗口。在该窗口顶部的选项卡栏中,打开 "构建阶段" 面板。展开 "链接二进制库" 组,并添加 Skeets.framework
或 SkeetsOSX.framework
,具体取决于您是构建 iOS 应用还是 OS X 应用。单击面板左上角的加号按钮,选择 "新复制文件阶段"。将此新阶段重命名为 "复制框架",设置 "目标" 为 "框架",并分别添加 Skeets.framework
或 SkeetsOSX.framework
。
Skeets 在 Apache v2 许可下授权。