自定义相册

如果直接使用系统的相册,并不会创建一个属于自己app的相册,所以我们在这里要实现自定义创建属于自己app的相册;

//直接调用系统的相册
UIImageWriteToSavedPhotosAlbum(_image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
//直接封装了一个自定义相册的方法
#import "LZPAlbumManager.h"
#import <Photos/Photos.h>
#import <SVProgressHUD/SVProgressHUD.h>
@implementation LZPAlbumManager

//获取指定的相册
//由用户传入想要找的相册的名字
+(PHAssetCollection *)getExistAlumWithAssetName:(NSString *)assetName{
    //该方法返回一个包含所有相册的数组(可以看做是一个数组,返回的类型可以遍历)
    PHFetchResult * result = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
    //遍历返回的数组,获得所有的相册名字
    for (PHAssetCollection * collection in result) {
        if ([collection.localizedTitle isEqualToString:assetName]) {
            return collection;
        }
    }
    return nil;
}

//保存指定的图片到指定的相册中
+(void)saveImageWithAlumAssetName:(NSString *)assetName andImageName:(UIImage *)image{
//获取相薄,因为一个系统中只有一个相薄,这里是使用的单例
    PHPhotoLibrary * phLi = [PHPhotoLibrary sharedPhotoLibrary];
    [phLi performChanges:^{

        //自定义相册
        PHAssetCollectionChangeRequest * assetCollectionChangeRequest;
        //判断自己的app专有的相册是否存在,如果存在,直接保存,如果不存在,创建一个指定名字的相册后再保存图片
        if ([self getExistAlumWithAssetName:assetName]) {
            //使用原有的相册保存
            assetCollectionChangeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:[self getExistAlumWithAssetName:assetName]];
        }else{
        //创建一个指定名称的相册
            assetCollectionChangeRequest = [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:assetName];
        }
        //创建图片请求对象
        PHAssetChangeRequest * assetChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image];

        //把图片放在自定义相册中
        [assetCollectionChangeRequest addAssets:@[assetChangeRequest.placeholderForCreatedAsset ]];

    } completionHandler:^(BOOL success, NSError * _Nullable error) {

        if (!error) {
            [SVProgressHUD showSuccessWithStatus:@"保存成功"];
        }else{
            [SVProgressHUD showErrorWithStatus:@"保存失败"];
        }
    }];
}
@end
时间: 2024-08-02 20:15:48

自定义相册的相关文章

iOS开发中自定义相册功能性能改善

大多数项目中都会用到相册浏览和选择功能,如果需要使用到自定义相册浏览器,那么,性能优化将是一个很重要的课题.毕竟操作对象是图片这样相对较大写数据单位.今天就针自定义相册浏览选择器四个优化点进行剖析: 缩略图页面加载速度优化 缩略图页面滑动流畅度优化 大图浏览滑动流畅度优化 内存优化 先看看自定义相册的两个主要界面: 1.缩略图页面加载速度优化 如果本地相册有200张以上的照片,那么缩略图页面的加载速度就显得尤为重要. 首先,要保证缩略图界面的控制器在没有加载照片的时候,从viewDidLoad到

iOS开发——实用技术OC篇&amp;关于自定义相册删除复活的实现

关于自定义相册删除复活的实现 在这里(http://www.cnblogs.com/iCocos/p/4705585.html)我们提到了. 1:简单的实现了获取系统相册图片并且保存图片到系统相册 2:定义自定义的相册,并且保存到自定义相册 这里久以一个简单的例子实现一个上面的所有功能,并且添加一个很有用的功能实现 App中自定义的相册呗删除之后再次保存相片无法成功 这里使用的是一个系统的库:ALAssetsLibrary 先来看看咱们取得相册中的相片 1 - (void)getAllPhoto

iOS 开发: 自定义相册, 保存多张图片到自定义相册中

1.自定义相册(兼容 iOS7 iOS8) - (void)viewDidLoad { //search all photo albums in the library    [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *group, BOOL *stop)     {         //compare the names of the albums        

iOS-保存图片到(自定义)相册步骤

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Yuanti SC"; color: #000000; background-color: #ffffff } 保存到相册步骤: 1.保存图片到[相机胶卷] 2.拥有一个[自定义相册] 3.将刚才保存到[相机胶卷中的图片]引用到[自定义相册] ①保存图片到[相机胶卷] /* 一.保存图片到[自定义相册] 1.保存图片到[相机胶卷] 1> C语言函数UIImageWriteT

iOS分段选择器、旅行App、标度尺、对对碰小游戏、自定义相册等源码

iOS精选源码 企业级开源项目,模仿艺龙旅行App 标签选择器--LeeTagView CSSegmentedControl常用的分段选择器,简单易用! 仿微信左滑删除 IOS左滑返回 输入框 iOS 基于PhotoKit框架的自定义相册 JHDraw - 画线,画虚线,画五角星,画矩形,画虚线矩形 标度尺 对对碰小游戏 iOS优质博客 iOS无痕埋点方案分享探究 前言当前互联网行业的竞争已经是非常激烈了, "功能驱动"的时代已经过去了, 现在更加注重软件的细节, 以及用户的体验问题.

通过自定义相册来介绍photo library的使用

因为我在模仿美图秀秀的功能,在使用相册时候,UIImagePickerController本来就是一个UINavigationController的子类,所以没有办法使用push,所以做了一个自定义的非UINavigationController子类的相册.使用的api是ios8以上提供的photokit. 一.获取相册的所有相册集 例如:个人收藏,最近添加,相机胶卷等. 1.使用+ (PHFetchResult<PHAssetCollection *> *)fetchAssetCollect

(ios8 9 自定义相册获取图片错误)PHImageManager.requestImageForAsset returns nil

相册无法读取到部分image,代码如下var options = PHImageRequestOptions() PHImageManager.defaultManager().requestImageForAsset(asset, targetSize: size, contentMode: PHImageContentMode.AspectFill, options: options) { (image, info) -> Void in if (image != nil) { cell.i

照片保存到相册,并添加到自定义相册中

-(void)addAssetURL:(NSURL*)assetURL toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock { //相册存在标示 __block BOOL albumWasFound = NO; ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init]; //search all photo

swift 将图片保存到自定义相册中

import UIKit import Photos @available(iOS 8.0, *) class CustomAblum: NSObject { static let sharedInstance = CustomAblum() var assetCollection: PHAssetCollection! var albumFound : Bool = false var photosAsset: PHFetchResult! var collection: PHAssetCol