美文网首页
iOS Photos 框架学习

iOS Photos 框架学习

作者: 郭小弟 | 来源:发表于2017-11-08 11:20 被阅读146次

    最近项目中要做图片浏览的功能,特别学习一下iOS8以后的新框架Photos,有一些是自己实践出来的,还有一部分是踩在巨人的肩膀上得到的,由于资料比较多,此处就不一一列举了,希望巨人见谅

    主要借鉴 : iOS8 Photos Framework

    PHAsset:代表图像或视频对象;

    PHCollection:代表图像或视频对象的集合,PHCollection是个基类,有PHAssetCollection和PHCollectionList两个子类,分别代表 Photos 里的相册和文件夹

    • localIdentifier

      Photos 框架中的根类PHObject只有一个公开接口localIdentifier, 是对象唯一唯一标志符.可以直接使用localIdentifier属性对PHObject及其子类对象进行对比是否同一个对象。

    • PHAsset

      代表照片库中的一个资源实体,可以理解为一张照片,可以得到图片的基本信息
      mediaType : 资源类型

      EB7BB251-B7C1-4B8A-A0B9-0DFB021C7320.png
      mediaSubtypes: 更多的资源样式
    4DA5D384-CEA5-492A-BA3D-A116B737857B.png
    pixelWidth 和 pixelHeight : 资源大小
    creationDate : 创建日期
    location : 资源创建的地理位置
    duration : 资源时长
    hidden : 资源是否是隐藏资源
    favorite : 资源是否被标记为喜欢
    representsBurst 和 burstIdentifier : representsBurst 属性为 true,表示为连拍的资源 。 burstIdentifier,可以通过将这个值传入 fetchAssetsWithBurstIdentifier(...) 方法来获取这一连拍资源的更多的连拍图片。
    比较常用几个获取资源的方法
    + (PHFetchResult<PHAsset *> *)fetchAssetsInAssetCollection:(PHAssetCollection *)assetCollection options:(nullable PHFetchOptions *)options;
    获取照片中某个相册文件中的所有资源
    + (PHFetchResult<PHAsset *> *)fetchAssetsWithMediaType:(PHAssetMediaType)mediaType options:(nullable PHFetchOptions *)options;
    查找相册中指定类型的资源
    + (PHFetchResult<PHAsset *> *)fetchAssetsWithLocalIdentifiers:(NSArray<NSString *> *)identifiers options:(nullable PHFetchOptions *)options;
    根据资源的id查找到相对应的资源
    • PHAssetCollection

    PHAssetCollection代表Photos里的相册

    typedef NS_ENUM(NSInteger, PHAssetCollectionType) {
         PHAssetCollectionTypeAlbum      = 1, //用户自定义相册
         PHAssetCollectionTypeSmartAlbum = 2, //系统相册
         PHAssetCollectionTypeMoment     = 3, //按时间排序分组的相册
         } PHOTOS_ENUM_AVAILABLE_IOS_TVOS(8_0, 10_0);
         
         
         PHAssetCollectionSubtype 这个里面的枚举就比较多了,按照条件查询的更细化一点,如果没有具体要求PHAssetCollectionSubtypeAny 所有的类型,
    

    localizedLocationNames : 资源位置名称,这个属性只有在选择PHAssetCollectionTypeMoment的时候才会有值
    estimatedAssetCount : 估算的资源数量,不一定准确
    approximateLocation : 不是每个相册集合都有,测试了一下如果是PHAssetCollectionTypeMoment可以看到相册拍摄的大概地点,如下图:

    image.png

    常用的获取相册资源的内容差不多就这些了,等下次再更新一下对相册资源的操作内容

    相关文章

      网友评论

          本文标题:iOS Photos 框架学习

          本文链接:https://www.haomeiwen.com/subject/fgdemxtx.html