iOS创建自定义相册
来源:互联网 发布:c和c 程序员面试秘笈 编辑:程序博客网 时间:2024/05/17 14:20
使用 photo 框架创建自定义名称的相册 并获取的自定义相册
- (PHAssetCollection *)createCustomAssetCollection { // 获取 app 名称 NSString *title = [NSBundle mainBundle].infoDictionary[(NSString *)kCFBundleNameKey]; NSError *error = nil; // 查找 app 中是否有该相册 如果已经有了 就不再创建 /** * 参数一 枚举: * PHAssetCollectionTypeAlbum = 1, 用户自定义相册 * PHAssetCollectionTypeSmartAlbum = 2, 系统相册 * PHAssetCollectionTypeMoment = 3, 按时间排序的相册 * * 参数二 枚举:PHAssetCollectionSubtype * 参数二的枚举有非常多,但是可以根据识别单词来找出我们想要的。 * 比如:PHAssetCollectionTypeSmartAlbum 系统相册 PHAssetCollectionSubtypeSmartAlbumUserLibrary 用户相册 就能获取到相机胶卷 * PHAssetCollectionSubtypeAlbumRegular 常规相册 */ PHFetchResult<PHAssetCollection *> *result = [PHAssetCollection fetchAssetCollectionsWithType:(PHAssetCollectionTypeAlbum) subtype:(PHAssetCollectionSubtypeAlbumRegular) options:nil]; for (PHAssetCollection *collection in result) { if ([collection.localizedTitle isEqualToString:title]) { // 说明 app 中存在该相册 return collection; } } /** 来到这里说明相册不存在 需要创建相册 **/ __block NSString *createdCustomAssetCollectionIdentifier = nil; // 创建和 app 名称一样的 相册 /** * 注意:这个方法只是告诉 photos 我要创建一个相册,并没有真的创建 * 必须等到 performChangesAndWait block 执行完毕后才会 * 真的创建相册。 */ [[PHPhotoLibrary sharedPhotoLibrary] performChangesAndWait:^{ PHAssetCollectionChangeRequest *collectionChangeRequest = [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:title]; /** * collectionChangeRequest 即使我们告诉 photos 要创建相册,但是此时还没有 * 创建相册,因此现在我们并不能拿到所创建的相册,我们的需求是:将图片保存到 * 自定义的相册中,因此我们需要拿到自己创建的相册,从头文件可以看出,collectionChangeRequest * 中有一个占位相册,placeholderForCreatedAssetCollection ,这个占位相册 * 虽然不是我们所创建的,但是其 identifier 和我们所创建的自定义相册的 identifier * 是相同的。所以想要拿到我们自定义的相册,必须保存这个 identifier,等 photos app * 创建完成后通过 identifier 来拿到我们自定义的相册 */ createdCustomAssetCollectionIdentifier = collectionChangeRequest.placeholderForCreatedAssetCollection.localIdentifier; } error:&error]; // 这里 block 结束了,因此相册也创建完毕了 if (error) { UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"创建相册失败" message:nil preferredStyle:UIAlertControllerStyleAlert]; [self presentViewController:alert animated:YES completion:nil]; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [alert dismissViewControllerAnimated:YES completion:nil]; }); } return [PHAssetCollection fetchAssetCollectionsWithLocalIdentifiers:@[createdCustomAssetCollectionIdentifier] options:nil].firstObject;}
阅读全文
0 0
- iOS创建自定义相册
- iOS自定义相册
- ios 自定义相册开发
- iOS 自定义相册
- iOS创建相册
- iOS中在系统相册中创建自己App的自定义相册
- iOS自定义相册性能优化
- iOS 自定义多选相册
- iOS开发-自定义专属相册
- 在手机相册(ios设备相册)中创建相册
- iOS:基于Photos框架的图片选择器以及创建自定义相册
- iOS开发获取系统相册资源,自定义相册(PhotoKit)
- iOS自定义相册多选控件制作
- iOS 自定义相册图片编辑页面
- IOS开发—自定义多选相册
- iOS开发-自定义专属相册 (详细)| 干货
- iOS 保存图片到自定义相册
- 自定义相册
- Affinity Photo(图片处理软件)官方中文版V1.6.0.89下载 | affinity photo 破解版
- 深度学习与卷积神经网络--识别鸟
- Servlet本地测试与远程部署
- Affinity Designer(图片设计工具)官方中文版V1.6.0.89下载 | affinity designer windows破解版
- 【Linux】常见命令总结
- iOS创建自定义相册
- 列表生成式,列表生成器,迭代器
- Change your mood -- Tools(1)
- Material Design控件之NestedScrollView
- mysql关于账户的命令
- iOS获取麦克风权限
- 作业.用类描述计算机中CPU的速度和硬盘容量
- usaco6.3.2 Cryptcowgraphy
- JDK的安装与配置