在APP中点击照片,都会显示出大图,然后在大图的上面会有个保存照片的按钮,照片直接保存到了系统的【相机胶卷】相册中,但是因为公司产品的需要,我们需要创建和APP同名的相册保存在【自定义相册】里面,这也就是分应用存储,因为用户可能从QQ,微信,微博分别存储,下次用户想找某个应用的图片,直接点开该应用相册即可,提高用户体验。
注意:
【自定义相册】里面的图片来源于【相机胶卷】相册中,即:【相机胶卷】引用【自定义相册】, 如果用户删掉【相机胶卷】里面的图片, 那么【自定义相册】重的图片也会删掉。但是,如果用户删掉【自定义相册】里面的图片, 那么【相机胶卷】中依然有该图片。
开发步骤:
1.先保存图片到【相机胶卷】(不能直接保存到自定义相册中)
2.拥有一个【自定义相册】
3.将刚才保存到【相机胶卷】里面的图片引用到【自定义相册】
方法1:用C语言函数实现
将图片保存到系统的相册中,只需要下面两句代码就搞定了
//参数1:图片对象
//参数2:成功方法绑定的target
//参数3:成功后调用方法
//参数4:需要传递信息(成功后调用方法的参数)
UIImageWriteToSavedPhotosAlbum(self.imageView.image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
#pragma mark --
-(void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
NSString *msg = nil ;
if(error){
msg = @"保存图片失败" ;
}else{
msg = @"保存图片成功" ;
}
}
注意:UIImageWriteToSavedPhotosAlbum方法必须实现图1的代理方法,否则会崩溃。
1.png
界面效果如下:界面图
效果图.png
方法2:使用Photos框架实现
2.1 Photos01-基本认识
PHAsset : 一个PHAsset对象就代表相册中的一张图片或者一个视频
PHAssetCollection : 一个PHAssetCollection 对象就代表一个相册
如果我们想保存图片到【相机胶卷】,首先要保证添加一个新的PHAsset对象,那么如