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

Posted tarena_3G

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS APP删除系统相册中选中的图片-姬云鹏相关的知识,希望对你有一定的参考价值。

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.                  ];  

以上是关于iOS APP删除系统相册中选中的图片-姬云鹏的主要内容,如果未能解决你的问题,请参考以下文章

IOS设计结构-姬云鹏

IOS设计结构-姬云鹏

微博分享-姬云鹏

iOS之保存图片到系统相册和从系统相册选取一张或者多张照片

iOS--app自定义相册--从自定义的相册中获取图片

iOS 重命名/删除相册