PHimageKit-Swift

如图:

13_1458267525765_272.gif

首先介绍下载PHimageKit中常用的两个Type

PHAssetCollectionType

    case Album //从 iTunes 同步来的相册,以及用户在 Photos 中自己建立的相册
    case SmartAlbum //经由相机得来的相册
    case Moment //Photos 为我们自动生成的时间分组的相册

PHAssetCollectionSubtype

    case AlbumRegular //用户在 Photos 中创建的相册,也就是我所谓的逻辑相册
    case AlbumSyncedEvent //使用 iTunes 从 Photos 照片库或者 iPhoto 照片库同步过来的事件。然而,在iTunes 12 以及iOS 9.0 beta4上,选用该类型没法获取同步的事件相册,而必须使用AlbumSyncedAlbum。
    case AlbumSyncedFaces //使用 iTunes 从 Photos 照片库或者 iPhoto 照片库同步的人物相册。
    case AlbumSyncedAlbum //做了 AlbumSyncedEvent 应该做的事
    case AlbumImported //从相机或是外部存储导入的相册,完全没有这方面的使用经验,没法验证。
    case AlbumMyPhotoStream //用户的 iCloud 照片流
    case AlbumCloudShared //用户使用 iCloud 共享的相册
    case SmartAlbumGeneric //文档解释为非特殊类型的相册,主要包括从 iPhoto 同步过来的相册。由于本人的 iPhoto 已被 Photos 替代,无法验证。不过,在我的 iPad mini 上是无法获取的,而下面类型的相册,尽管没有包含照片或视频,但能够获取到。
    case SmartAlbumPanoramas //相机拍摄的全景照片
    case SmartAlbumVideos //相机拍摄的视频
    case SmartAlbumFavorites //收藏文件夹
    case SmartAlbumTimelapses //延时视频文件夹,同时也会出现在视频文件夹中
    case SmartAlbumAllHidden //包含隐藏照片或视频的文件夹
    case SmartAlbumRecentlyAdded //相机近期拍摄的照片或视频
    case SmartAlbumBursts //连拍模式拍摄的照片,在 iPad mini 上按住快门不放就可以了,但是照片依然没有存放在这个文件夹下,而是在相机相册里。
    case SmartAlbumSlomoVideos //Slomo 是 slow motion 的缩写,高速摄影慢动作解析,在该模式下,iOS 设备以120帧拍摄。不过我的 iPad mini 不支持,没法验证。
    case SmartAlbumUserLibrary //这个命名最神奇了,就是相机相册,所有相机拍摄的照片或视频都会出现在该相册中,而且使用其他应用保存的照片也会出现在这里。
    case Any //包含所有类型

获取相册列表

    let studic: NSMutableArray = NSMutableArray()
    let smartAlbums = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .Any, options: nil)

    smartAlbums.enumerateObjectsUsingBlock { (assetCollection, index, stop) -> Void in
        let subtype = assetCollection.assetCollectionSubtype
        if .SmartAlbumUserLibrary == subtype {
            studic .addObject(assetCollection);
        }
    }
    self.dataArray = studic

获取该列表下的图片

 let assetCollection = self.dataArray!.objectAtIndex(indexPath.row) as! PHAssetCollection
 let fetchResult = PHAsset.fetchAssetsInAssetCollection(assetCollection, options: nil) as PHFetchResult
  PHImageManager.defaultManager().requestImageForAsset(fetchResult[fetchResult.count-3] as! PHAsset, targetSize: CGSizeMake(120, 120), contentMode: .AspectFill, options: nil) { (image, info) -> Void in
            cell.imageView3?.image = image
  }

Demo地址:
https://github.com/chengssir/PHImageKit_Swift


欢迎大家提出问题!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,239评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,819评论 4 61
  • 善于联想,当描述一个场景的时候,可以联想出整个场景画面,并可以聚焦于某个小局部 从表象到本质的推理,通过对表象的分...
    9995857阅读 1,166评论 0 0
  • 圆形百分比view主要是对canvas的操作以及坐标的计算 在values文件夹下新建自定义属性文件attrs.x...
    辉辉_阅读 3,318评论 0 5
  • 诗/刘万军 桃花散尽百花残, 打马洛城看牡丹。 三日归来芍药好, 消闲岂负艳阳天。
    刘万军L阅读 1,328评论 0 0

友情链接更多精彩内容