Photos.frameWork

来源:互联网 发布:linux重启mysql数据库 编辑:程序博客网 时间:2024/05/01 16:15

1、 需要了解的类功能及作用
PHCollectionList
PHAssetCollection
PHAsset
PHFetchResult
PHCachingImageManager
通读apple官方文档注解及API初步了解各个类的作用之后,简单概括如下:
类之间的关系
- PHCollectionList 相薄或相薄集合,使用如下方式获取相薄集合,主要用来获取用户或应用自己创建的相薄

 PHFetchResult *userCollectionList = [PHCollectionList fetchTopLevelUserCollectionsWithOptions:nil];
  • PHAssetCollection 代表一个相薄,使用如下方式,获取相薄集合,一个单独的资源集合可以是照片库中的一个相册或者一个时刻,或者是一个特殊的“智能相册”。这种智能相册包括所有的视频集合,最近添加的项目,用户收藏,所有连拍照片等
PHFetchResult *smartAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAny options:nil];
  • PHFetchResult 相当于数组之类的容器,用于存放各种结果集
  • PHAsset 表示用户照片库中一个单独的资源,用以提供资源的元数据。通过以下API获取PHAsset 资源的集合
PHFetchResult *assetsFetchResult = [PHAsset fetchAssetsInAssetCollection:assetCollection options:options];

2、CollectionType

enum PHAssetCollectionType : Int {    case Album //从 iTunes 同步来的相册,以及用户在 Photos 中自己建立的相册    case SmartAlbum //经由相机得来的相册    case Moment //Photos 为我们自动生成的时间分组的相册}enum PHAssetCollectionSubtype : Int {    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 //包含所有类型}

PHAssetCollectionType 与PHAssetCollectionSubtype 组合 取出不同名称的相薄 我的照片流的出现就是一个典型的例子,通过PHAssetCollectionTypeAlbum 与AlbumMyPhotoStream 组合,可以成功找到我的照片流相薄

3、相关链接
http://kayosite.com/ios-development-and-detail-of-photo-framework-part-two.html
http://objccn.io/issue-21-4/
不错的照片选择器第三方库
https://github.com/guillermomuntaner/GMImagePicker

0 0
原创粉丝点击