iOS APP删除系统相册中选中的图片-姬云鹏

来源:互联网 发布:远程办公软件 编辑:程序博客网 时间:2024/04/30 00:41

app有一个新功能是在app中删除相册的照片。  8之前还是AssetsLibary处理

iOS 8+通过Photos.framework #import <Photos/Photos.h> 

1.添加图片

  1. //首先获取相册的集合  
  2.   PHFetchResult *collectonResuts = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAny options:[PHFetchOptions new]] ;  
  3.   //对获取到集合进行遍历      
  4.   [collectonResuts enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {  
  5.       PHAssetCollection *assetCollection = obj;  
  6.   //Camera Roll是我们写入照片的相册  
  7.   if ([assetCollection.localizedTitle isEqualToString:@"Camera Roll"])  {  
  8.           [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{  
  9.     //请求创建一个Asset               
  10.      PHAssetChangeRequest *assetRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:[UIImage imageNamed:@"pet"]];  
  11.     //请求编辑相册                
  12.      PHAssetCollectionChangeRequest *collectonRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:assetCollection];  
  13.     //为Asset创建一个占位符,放到相册编辑请求中  
  14.      PHObjectPlaceholder *placeHolder = [assetRequest placeholderForCreatedAsset ];  
  15.     //相册中添加照片  
  16.               [collectonRequest addAssets:@[placeHolder]];  
  17.           } completionHandler:^(BOOL success, NSError *error) {  
  18.               NSLog(@"Error:%@", error);  
  19.           }];  
  20.      }  
  21.     }];  

2.删除最后一张图片

  1. PHFetchResult *collectonResuts = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAny options:[PHFetchOptions new]] ;  
  2.   [collectonResuts enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {  
  3.       PHAssetCollection *assetCollection = obj;  
  4.       if ([assetCollection.localizedTitle isEqualToString:@"Camera Roll"])  {  
  5.           PHFetchResult *assetResult = [PHAsset fetchAssetsInAssetCollection:assetCollection options:[PHFetchOptions new]];  
  6.           [assetResult enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {  
  7.              [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{  
  8.                  //获取相册的最后一张照片  
  9.                  if (idx == [assetResult count] - 1) {  
  10.                      [PHAssetChangeRequest deleteAssets:@[obj]];  
  11.                  }  
  12.              } completionHandler:^(BOOL success, NSError *error) {  
  13.                  NSLog(@"Error: %@", error);  
  14.              }];  
  15.           }];  
  16.       }  
  17.   }];  

 

3.删除选中的图片

  1. //    NSURL *url= [info objectForKey:UIImagePickerControllerReferenceURL];     
  2. PHFetchResult *result = [PHAsset fetchAssetsWithALAssetURLs:@[url] options:nil];  
  3.     PHAsset *asset = [result lastObject];  
  4.       
  5.     [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{  
  6.         [PHAssetChangeRequest deleteAssets:@[asset]];  
  7.     } completionHandler:^(BOOL success, NSError *error) {  
  8.                  NSLog(@"Error: %@", error);  
  9.                  }];  

0 0
原创粉丝点击