看到项目中用到AssetsLibrary这个框架, 所以研究了一下

其实很简单

- (void)getAlbumPhoto {
NSString *tipTextWhenNoPhotosAuthorization; // 提示语
// 获取当前应用对照片的访问授权状态
ALAuthorizationStatus authorizationStatus = [ALAssetsLibrary authorizationStatus];
NSLog(@"sss%ld", (long)authorizationStatus);
/*
// 不确定身份
ALAuthorizationStatusNotDetermined NS_ENUM_DEPRECATED_IOS(6_0, 9_0) = 0,
// 受限制授权
ALAuthorizationStatusRestricted NS_ENUM_DEPRECATED_IOS(6_0, 9_0),
// 拒绝
ALAuthorizationStatusDenied NS_ENUM_DEPRECATED_IOS(6_0, 9_0),
// 授权成功
ALAuthorizationStatusAuthorized NS_ENUM_DEPRECATED_IOS(6_0, 9_0)
*/
// 如果没有获取访问授权,或者访问授权状态已经被明确禁止,则显示提示语,引导用户开启授权
if (authorizationStatus == ALAuthorizationStatusRestricted || authorizationStatus == ALAuthorizationStatusDenied) {
NSDictionary *mainInfoDictionary = [[NSBundle mainBundle] infoDictionary];
NSString *appName = [mainInfoDictionary objectForKey:@"CFBundleName"];
tipTextWhenNoPhotosAuthorization = [NSString stringWithFormat:@"请在设备的\"设置-隐私-照片\"选项中,允许 %@ 访问你的手机相册", appName];
// 展示提示语
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"" message:tipTextWhenNoPhotosAuthorization delegate:nil cancelButtonTitle:@"取消" otherButtonTitles: nil];
[alertView show];
return;
} [self.assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
if (group) {
// 过滤相册列表
/*
// + (ALAssetsFilter *)allPhotos; // 全部的相册
// + (ALAssetsFilter *)allVideos; // 全部的视频
// + (ALAssetsFilter *)allAssets; // 所有视频 + 相册
*/
[group setAssetsFilter:[ALAssetsFilter allPhotos]];
if (group.numberOfAssets > ) {
// 把相册储存到数组中,方便后面展示相册时使用
AssetPhotoAlbum *assetGroupAlbum = [AssetPhotoAlbum assetPhotoAlbumWithAssetsGroup:group];
[self.allAssetGroupAlbum addObject:assetGroupAlbum]; [group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
if (result) {
AlbumPhoto *albumPhoto = [AlbumPhoto albumPhotoAsset:result];
[assetGroupAlbum.assetAlbumPhotosArray addObject:albumPhoto];
}
}];
}
}
else {
if (self.allAssetGroupAlbum.count) {
[self.collectionView reloadData];
}
}
} failureBlock:^(NSError *error) {
NSLog(@"Asset group not found!\n");
}];
}

相册框架之AssetsLibrary的更多相关文章

  1. iOS相册实现与AssetsLibrary框架使用

    概述 在iOS中如果想要获取手机相册里面的图片或者视频的话就要用到系统自带的AssetsLibrary框架,AssetsLibrary.framework中包含以下文件 #import <Ass ...

  2. IOS-AssetsLibrary(相册)框架介绍

    AssetsLibrary框架介绍: AssetsLibrary框架包含了ALAssetsLibrary,ALAssetsGroup,ALAsset,ALAssetsFilter,ALAssetRep ...

  3. iOS 开发之照片框架详解(1)

    http://kayosite.com/ios-development-and-detail-of-photo-framework.html/comment-page-1 一. 概要 在 iOS 设备 ...

  4. iOS框架介绍

    iOS框架介绍      Cocoa Touch   GameKit  实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息  iOS设备之间蓝牙数据传输   从iOS7开始过期   局域网游 ...

  5. iOS 开发之照片框架详解

    转载自:http://kayosite.com/ios-development-and-detail-of-photo-framework.html 一. 概要 在 iOS 设备中,照片和视频是相当重 ...

  6. iOS 常用框架介绍

    iOS框架介绍      Cocoa Touch   GameKit  实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息  iOS设备之间蓝牙数据传输   从iOS7开始过期   局域网游 ...

  7. iOS--app自定义相册--创建相簿,存储图片到手机

    我们在APP中点击照片,都会显示出大图,然后在大图的上面会有个保存照片的按钮,照片直接保存到了系统的相册中,但是因为公司产品的需要,让你创建和APP同名的相册保存在里面,那么就对了,可以看下具体的代码 ...

  8. ios从相册:摄像头中获取视频

    ios从相册/摄像头中获取视频 如何从相册中获取视频 使用的是一个和获取照片相同的类UIImagePickerController //相册中获取视频 - (IBAction)clickViedoOF ...

  9. 最新 iOS 框架整体梳理(三)

    这一篇得把介绍框架这个系列终结了,不能超过三篇了,不然太长了..... 还是老规矩,前面两篇的机票在下方: 最新 iOS 框架整体梳理(一) 最新 iOS 框架整体梳理(二) Part - 3     ...

随机推荐

  1. BZOJ4773 负环(floyd+倍增)

    倍增floyd求出经过<=2k条边时两点间最短路,一个点到自身的最短路就是包含该点的最小环.然后倍增找答案即可.注意初始时到自身的最短路设为0,这样求出的最短路就是经过<=2k条边的而不是 ...

  2. 【题解】洛谷P3709大爷的字符串题

    最近想要练习一下莫队(实在是掌握的太不熟练了啊.)这题一开始看到有点懵(题面杀),后来发现是要求众数的个数.乍一看好像很难的样子. 但仔细分析一下:首先往序列当中加入一个数,这个是很简单的,只需要维护 ...

  3. 一些技巧 && 常数优化 && 出现の错误

    开坑原因 7.21 今天DTZ大爷教了我一个算欧拉函数的好方法......是质因数复杂度的 这让我想到,这些小技巧小idea,很多时候,可能就是考场上最致命.最一击必杀的"大招" ...

  4. [HAOI2010]计数 数位DP+组合数

    题面: 你有一组非零数字(不一定唯一),你可以在其中插入任意个0,这样就可以产生无限个数.比如说给定{1,2},那么可以生成数字12,21,102,120,201,210,1002,1020,等等. ...

  5. 洛谷 P4592 [TJOI2018]异或 解题报告

    P4592 [TJOI2018]异或 题目描述 现在有一颗以\(1\)为根节点的由\(n\)个节点组成的树,树上每个节点上都有一个权值\(v_i\).现在有\(Q\)次操作,操作如下: 1 x y:查 ...

  6. 用camke编译python程序

    project(test) cmake_minimum_required(VERSION 3.0) find_package(OpenCV REQUIRED) find_package (Python ...

  7. POSIX.2 正则表达式

    By francis_hao    Oct 1,2017   这里的正则表达式主要是指扩展正则,也就是egrep(grep -e)用到的正则表达式. 字符 含义 类别说明 | 分割分支,正则表达式会去 ...

  8. 题解【bzoj2427 [HAOI2010]软件安装】

    Description 现在我们的手头有\(N\)个软件,对于一个软件\(i\),它要占用\(W_i\)的磁盘空间,它的价值为\(V_i\).我们希望从中选择一些软件安装到一台磁盘容量为\(M\)计算 ...

  9. css-box-shadow

    .arti_type_shadow { position: absolute; width: 100%; height: 6px; left:; right:; background-image: u ...

  10. lombok 配置使用以及优势

    maven依赖 <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> ...