苹果在iOS8推出了全新的PhotosKit
框架使应用与设备照片库对接,相比旧的ALAssetsLibrary
框架更完整更高效,并使用全新的API。但PhotosKit
最低支持iOS8,如果你仍然需要支持iOS7,你将不得不同时使用两个框架,GSPhotos
解决了这个问题。
- 当运行于iOS8+时自动使用
PhotosKit
,iOS7时自动使用ALAssetsLibrary
- 包含常用的资源、相册属性
- 支持获取相册列表、资源列表
- 轻松设置相册封面、资源缩略图、原图
将GSPhotos
文件夹拖拽到你的项目中即可。
获取相册列表,返回GSAlbum
数组:
GSPhotoLibrary.sharedInstance.fetchAlbums { albums, error in
// do something...
}
获取指定相册下的照片列表,返回GSAsset
数组:
GSPhotoLibrary.sharedInstance.fetchAssetsInAlbum(album, mediaType: .Image) { assets, error in
// do something...
}
获取所有照片的列表,返回GSAsset
数组:
GSPhotoLibrary.sharedInstance.fetchAllAssets(.Image) { assets, error in
// do something...
}
注:列表获取成功时error
为nil
,否则返回的数组为nil
- 资源图片
imageView.setImageWithAsset(asset, size: .Thumbnail)
imageView.setImageWithAsset(asset, size: .Original, placeHolderImage: placeHolderImage)
- 相册封面
imageView.setImageWithAlbum(album)
imageView.setImageWithAlbum(album, placeHolderImage: placeHolderImage)
相册名称:
private(set) var name: String
包含的资源数量:
private(set) var count: Int
原始的 PHAssetCollection 或者 ALAssetsGroup 实例:
private(set) var originalAssetCollection: AnyObject
获取封面图片的UIImage对象:
//
// 示例:
// album.getPosterImage { image in
// // do something...
// }
//
func getPosterImage(handler: (UIImage?) -> Void)
资源类型,比如图片、视频等:
private(set) var mediaType: GSAssetMediaType!
图片或视频资源的宽度,单位为像素:
private(set) var pixelWidth: Int!
图片或视频资源的高度,单位为像素:
private(set) var pixelHeight: Int!
资源的原始创建时间:
private(set) var creationDate: NSDate!
资源最后被修改的时间 (ios8+ only):
private(set) var modificationDate: NSDate?
资源的位置信息:
private(set) var location: CLLocation?
视频资源的时长,单位为秒:
private(set) var duration: NSTimeInterval?
localIdentifier 或者 representationUTI 唯一标识:
private(set) var uniqueIdentifier: String?
同一个Burst序列的唯一标识 (ios8+ only):
private(set) var burstIdentifier: String?
原始的 PHAsset 或者 ALAsset 实例:
private(set) var originalAsset: AnyObject
获取图片的UIImage对象:
//
// 示例:
// asset.getImage(.Orignal) { image in
// // do something...
// }
//
func getImage(size: GSPhotoImageSize, _ handler: (UIImage) -> Void)
mediaType
: 资源类型
public enum GSAssetMediaType : Int {
case Unknown = 0 // 未知
case Image = 1 // 图片
case Video = 2 // 视频
case Audio = 3 // 音频
}
size
: 图片大小
public enum GSPhotoImageSize {
case Thumbnail // 缩略图
case Original // 原图
}
GSPhotos is available under the MIT license. See the LICENSE file for more info.