在我们的App中 ,如何将我们从网络上下载的图片 保存到用户设备 的系统相册中,以供用户使用呢?
以下是苹果SDK中为我们提供的方法:在这里粗浅的讲解一下大致的用法,更多的使用方法,可以查阅苹果官方文档,了解更多!
方法一:
++简单保存图片到系统相册 ++
-
直接调用系统函数
''UIImage *image =nil;
''UIImageWriteToSavedPhotosAlbum(image,self, @selector(image:didFinishSavingWithError:contextInfo:), nil); -
必须实现 系统方法
''- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
方法二:
++在系统照片库中 添加自定义相簿 并保存照片++
完整方法:
方法解析:
- 导入Photo 框架
''#import <Photos/Photos.h> - 获取PHPhotoLibrary 对象 调用方法
''[[PHPhotoLibrary sharedPhotoLibrary] performChanges:<#^(void)changeBlock#> completionHandler:<#^(BOOL success, NSError * _Nullable error)completionHandler#>];
%% 在performChanges block中实现以下方法
%% completionHandler 完成后回调 block - 创建自定义相册 PHAssetCollectionChangeRequest ->与相册相关的操作类
title :相册标题
''PHAssetCollectionChangeRequest *assetCollectionChangeRequest =[PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:@"别有洞天"]; - 保存照片到相册 PHAssetChangeRequest ->与照片图片相关操作类
将照片添加到 系统相册 (此次操作后,系统相册中已经保存 当前照片)
''PHAssetChangeRequest *assetChangeRequest =[PHAssetChangeRequest creationRequestForAssetFromImage:image];''
将照片从系统相册中 拷贝到自定义相册
'' PHObjectPlaceholder * objectPlaceholder=[assetChangeRequest placeholderForCreatedAsset];
%% placeholderForCreatedAsset 方法: 用来获取一个新创建的asset
往自定的相册中添加照片
''[assetCollectionChangeRequest addAssets:@[objectPlaceholder]];
寄语:
圣人千古,必有一失;余人千虑,必有一得!
本文简述的仅仅是Photos 框架的很小一个部分,欢迎各位交流;
网友评论