美文网首页
iOS Photos相册

iOS Photos相册

作者: CaptainRoy | 来源:发表于2019-06-24 10:48 被阅读0次
  • 导入
#import <Photos/Photos.h>
  • 在plist文件中加入 Privacy - Photo Library Usage Description描述(否则会崩溃而且苹果审核也会不通过)
  • 查看相册权限
/*
     PHAuthorizationStatusNotDetermined = 0, // 用户尚未作出关于这个应用的选择。
     PHAuthorizationStatusRestricted,        // 此应用程序未被授权访问照片数据。
                                             // 用户可能无法更改此应用程序的状态,可能是由于活动限制
                                             // 比如家长控制。
     PHAuthorizationStatusDenied,            // 用户已明确拒绝此应用程序访问照片数据。
     PHAuthorizationStatusAuthorized         // 用户已授权此应用程序访问照片数据。
     */
    [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
        if (status == PHAuthorizationStatusAuthorized) {
            NSLog(@"有访问权限");
        } else {
            NSLog(@"无访问权限");
        }
    }];
获取全部相册
  • 先拿到 Camera Roll 分类 包含所有相册
// 获得全部相片
    PHFetchResult<PHAssetCollection *> *cameraRolls = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary options:nil];
    
    NSLog(@"cameraRolls - %lu",(unsigned long)cameraRolls.count); // 1
    for (PHAssetCollection *assetCollection in cameraRolls) {
        NSLog(@"assetCollection - %@",assetCollection);
    }
  • 获取所有相册
PHAssetCollection *assetCollection = [cameraRolls lastObject];
    NSLog(@"assetCollection - %@",assetCollection);
    NSLog(@"title - %@",assetCollection.localizedTitle);
    
    PHFetchResult<PHAsset *> *assets = [PHAsset fetchAssetsInAssetCollection:assetCollection options:NULL];
    NSLog(@"assets - %@",assets);
    
    PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
    options.synchronous = YES;// 同步获得图片, 只会返回1张图片
    options.deliveryMode = PHImageRequestOptionsDeliveryModeOpportunistic;
    options.resizeMode = PHImageRequestOptionsResizeModeFast;
    for (PHAsset *asset in assets) {
        
        NSLog(@" width - %lu height - %lu",(unsigned long)asset.pixelWidth,(unsigned long)asset.pixelHeight);
        CGSize size = CGSizeMake(asset.pixelWidth, asset.pixelHeight);
        
//        [[PHImageManager defaultManager] requestImageForAsset:asset targetSize:size contentMode:PHImageContentModeDefault options:options resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
//
//            NSLog(@"result - %@",result);
//            NSLog(@"info - %@",info);
//
//        }];
        
        [[PHCachingImageManager defaultManager] requestImageForAsset:asset targetSize:size contentMode:PHImageContentModeDefault options:options resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
            
            NSLog(@"result - %@",result);
            NSLog(@"info - %@",info);
            
        }];
    }

相关文章

  • #import <Photos/Photos.h>

    import  iOS图片 缩放、剪裁、自适应剪裁、保存到相册  从P...

  • iOS相册--Photos

    Photos是什么 Photos是苹果全新的照片框架,其要求最低版本为iOS8.利用Photos可以实现以下功能:...

  • iOS Photos相册

    参考连接 参考连接 导入 在plist文件中加入 Privacy - Photo Library Usage De...

  • iOS7,8,9下相册适配AssetsLibrary和Photo

    1.0 简介 iOS8及以后苹果将操作相册的ALAssetsLibrary framework替换为Photos ...

  • ### 仿小影图片选择

    项目准备 iOS-保存图片到自定义相册MSTImagePickerController利用Photos 框架搭建美...

  • iOS 视屏压缩

    iOS 8.0 相册使用的新的框架 Photos。 一、获取权限 二、获取视屏元数据 PHFetchResult ...

  • iOS之Photos/Photos.h库获取系统相册

    在iOS11中使用了系统photos库获取本地相册,可以先获取相册名再获取具体照片,同时可以访问系统分类相册和用户...

  • Photos框架快速了解

    Photos是iOS 8以上可使用的框架,通过此框架可以获取用户相册图片、livephoto、vidio下面是常用...

  • 聊聊ALAssetsLibrary 与 Photos

    ALAssetsLibrary和Photos都是Apple提供访问系统相册资源的两个标准库,前者在iOS9之后已经...

  • iOS 系统相册的使用

    使用的库 ios8 以前,使用的是 ,ios8以后,苹果推出了 现在一般使用photos库 针对系统相册的操作 ...

网友评论

      本文标题:iOS Photos相册

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