iOS Photos相册

2019-06-24  本文已影响0人  CaptainRoy
#import <Photos/Photos.h>
/*
     PHAuthorizationStatusNotDetermined = 0, // 用户尚未作出关于这个应用的选择。
     PHAuthorizationStatusRestricted,        // 此应用程序未被授权访问照片数据。
                                             // 用户可能无法更改此应用程序的状态,可能是由于活动限制
                                             // 比如家长控制。
     PHAuthorizationStatusDenied,            // 用户已明确拒绝此应用程序访问照片数据。
     PHAuthorizationStatusAuthorized         // 用户已授权此应用程序访问照片数据。
     */
    [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
        if (status == PHAuthorizationStatusAuthorized) {
            NSLog(@"有访问权限");
        } else {
            NSLog(@"无访问权限");
        }
    }];
获取全部相册
// 获得全部相片
    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);
            
        }];
    }
上一篇 下一篇

猜你喜欢

热点阅读