iOS PhotoKit

PhotoKit的基本构成:

PHAsset:代表照片库中的一个资源,和ALAsset类似, 通过PHAsset可以获取和保存资源。

PHFetchOptions:获取资源时的参数,可以传nil,即使用系统默认值。

PHAssetCollection:PHCollection的子类,表示一个相册或者一个时刻,或者是一个智能相册。

PHFetchResult:表示一系列的资源结果集合,也可以是相册的集合,从PHCollection的类方法中获得。

PHImageManager:用于处理资源的加载,加载图片的过程带有缓存处理,可以通过传入一个PHImageRequestOptions控制资源的输出尺寸等规格

PHImageRequestOptions:控制加载图片时的一些参数

PhotoKit的机制

1.获取资源

示例代码

//筛选规则
    PHFetchOptions * option =[[PHFetchOptions alloc]init];
    //排序方式
    option.sortDescriptors =@[[NSSortDescriptor sortDescriptorWithKey:@"modificationDate" ascending:NO]];
    //列出所有相册智能相册
    PHFetchResult * smartAlbums =[PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];

    // 列出所有用户创建的相册
//    PHFetchResult *smartAlbums = [PHCollectionList fetchTopLevelUserCollectionsWithOptions:nil];

    for (int i=0; i<smartAlbums.count; i++) {
        //获取一个相册
        PHCollection * collection =smartAlbums[i];
        if ([collection isKindOfClass:[PHAssetCollection class]]) {
            //每一个相册(assetcollection)
            PHAssetCollection * assetcollection =(PHAssetCollection *)collection;
            //从每一个相册中获取到中真正的资源
            //相册里多有资源(fetResult)
            PHFetchResult * fetResult =[PHAsset fetchAssetsInAssetCollection:assetcollection options:nil];

            if (fetResult.count>0) {
                [assetArray addObject:fetResult];
                [nameArray addObject:assetcollection.localizedTitle];
                //获取封面图片,就是第一张图片
                PHAsset *asset = (PHAsset *)fetResult.firstObject;
                PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
                //默认的是异步加载,这里选择了同步 因为只获取一张照片,不会对界面产生很大的影响
                options.synchronous = YES;
                PHImageManager * manager =[PHImageManager defaultManager];
                [manager requestImageForAsset:asset targetSize:PHImageManagerMaximumSize contentMode:PHImageContentModeDefault options:options resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
                    [fsArray addObject:result];
                }];
            }
        }
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值