2014.12.5 ios实现相册多选操作

JS控制HTML5 vedio播放

UITableview自适应高度

ios实现相册多选操作

2014-09-17 19:35:07|  分类: objective-c |  标签:ios  相册多选   |举报 |字号大中小 订阅

我们知道UIKit框架为我们提供了UIImagePickerController 这个控制器来读取相册资源,但是通过这个控制器我们只能选取一张照片,但是如果想选取多张照片,又该如何操作呢?
AssetsLibrary.framework 通过这个框架,我们可以读取到相册中所有的照片资源。这个框架主要提供了这么几个类:
ALAssetsLibrary     指的是整个相册库 ALAssetsGroup       指的是相册中的文件夹 ALAsset             指的是文件夹中的照片、视频
以上三个类的使用 : 先通过  ALAssetsLibrary 类创建相册对象,再通过此相册对象循环遍历相册中得文件夹对象:ALAssetsGroup  。再通过每一个文件夹对象,循环遍历此文件夹中的所有的相册、视频对象:ALAsset。此对象中包含了相册、视频数据,通过这样几次遍历,我们就能获取到相册中所有的照片、视频数据。
代码:

OC代码

  1. ALAssetsLibrary *libray = [[ALAssetsLibrary alloc] init];
  2. /*
  3. 通过相册库枚举遍历所有的文件夹ALAssetsGroup
  4. usingBlock : 有多少个Group文件夹,则调用多少次block,每次将对应的文件夹Group传过来
  5. */
  6. [libray enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
  7. if (group != nil) {
  8. //设置过滤对象
  9. //            ALAssetsFilter *filter = [ALAssetsFilter allVideos];
  10. //            [group setAssetsFilter:filter];
  11. //通过文件夹枚举遍历所有的相片ALAsset对象,有多少照片,则调用多少次block
  12. [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
  13. if (result != nil) {
  14. //将result对象存储到数组中
  15. [_data addObject:result];
  16. }
  17. }];
  18. }
  19. //刷新表格,显示照片
  20. [_tableView reloadData];
  21. } failureBlock:^(NSError *error) {
  22. }];

以上代码通过循环遍历获取到所有的相册对象ALAsset,然后存储到数组对象_data中,再通过UITableView显示在单元格中。

以下是单元格的创建,并且取得ALAsset对象中的数据,显示出来:

OC代码

  1. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  2. return _data.count;
  3. }
  4. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  5. static NSString *identify = @"imageCell";
  6. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identify];
  7. if (cell == nil) {
  8. cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identify] autorelease];
  9. }
  10. ALAsset *asset = [_data objectAtIndex:indexPath.row];
  11. //获取到媒体的类型
  12. NSString *type = [asset valueForProperty:ALAssetPropertyType];
  13. //媒体类型是视频
  14. if ([type isEqualToString:ALAssetTypeVideo]) {
  15. cell.textLabel.text = @"视频";
  16. } else {
  17. cell.textLabel.text = @"照片";
  18. }
  19. //获取到相片、视频的缩略图
  20. CGImageRef cgImage = [asset thumbnail];
  21. UIImage *image = [UIImage imageWithCGImage:cgImage];
  22. cell.imageView.image = image;
  23. return cell;
时间: 2024-12-21 17:41:50

2014.12.5 ios实现相册多选操作的相关文章

2014.12.4 ios网络应用之ASI框架一

ASIHTTPRequest是一款极其强劲的HTTP访问开源项目.让简单的API完成复杂的功能, 如: 异步请求,队列请求,GZIP压缩,缓存,断点续传,进度跟踪,上传文件,HTTP认证 在新的版本中,还加入了Objective-C闭包Block的支持,让我们的代码更加轻简灵活. 下面就举例说明它的API用法. 发起一个同步请求 同步意为着线程阻塞,在主线程中使用此方法会使应用Hang住而不响应任何用户事件.所以,在应用程序设计时,大多被用在专门的子线程增加用户体验,或用异步请求代替(下面会讲到

iOS系统相册的有关操作

iOS中,我们选择相册中的资源和调用摄像头可以使用 :UIImagePickerController类来完成,不使用UI我们可以通过:ALAssetsLibrary类来使用相册资源. 一. ALAssetsLibrary简介 ALAssetsLibrary提供了访问了iOS设备下所有照片和视频的接口 1. 从ALAssetLibrary中可以读取所有的相册数据 用ALAssetsGroup对象列表: 2. 从每个ALAssetsGroup中可获取到其中包含的照片或视频列表,即ALAsset对象列

WWDC 2014 Session笔记 - iOS界面开发的大一统

本文是我的 WWDC 2014 笔记 中的一篇,涉及的 Session 有 What's New in Cocoa Touch Building Adaptive Apps with UIKit What's New in Interface Builder View Controller Advancements in iOS 8 A Look Inside Presentation Controllers iOS 8 和 OS X 10.10 中一个被强调了多次的主题就是大一统,Apple

【2014最新】iOS App 提交上架store 详细流程

[2014最新]iOS App 提交上架store 详细流程 一.证书的导出 1.1.前期工作 首先你需要有一个苹果的开发者帐号,一个Mac系统. 如果没有帐号可以在打开http://developer.apple.com/申请加入苹果的开发者计划.支付99美元每年,怎么申请网上有详细的介绍,在此不多做介绍. 如果你已经有了一个IDP,打开http://developer.apple.com/并登录到苹果MemberCenter,见下: 登录以后可以看到下面这个界面,列出了你开发需要的一些工具,

【2014最新】iOS App 提交上架store 详细流程(转)

[2014最新]iOS App 提交上架store 详细流程   一.证书的导出 1.1.前期工作 首先你需要有一个苹果的开发者帐号,一个Mac系统. 如果没有帐号可以在打开http://developer.apple.com/申请加入苹果的开发者计划.支付99美元每年,怎么申请网上有详细的介绍,在此不多做介绍. 如果你已经有了一个IDP,打开http://developer.apple.com/并登录到苹果MemberCenter,见下: 登录以后可以看到下面这个界面,列出了你开发需要的一些工

iOS访问相册及拍照保存的实现实例

iOS访问相册及拍照保存的实现实例 实现效果: 1.点击访问相册按钮,可以访问系统相册,选择以后返回在imageView中显示 2.点击拍照,访问摄像头,实现以后保存在相册中,返回在imageView中显示 注意:拍照功能需要真机调试,模拟器无法实现 模拟器会有如下效果~弹出警告框 工程下载:github工程下载链接 下面是程序:注意此例中两个button和UIimageView在storyboard中添加: ViewController.h @interface ViewController

易轩网络更新页面————————2014.12.13发布

易轩网络更新页面: 最新更新动态: ★易轩★改软件标题工具—)—)豪华版              出炉! 工具大小:52.0 MB(若大于该大小则视为病毒文件处理) 工具功能:更改你想要更改软件的标题(则运行时的名称) 工具版本:v1.0.0.0 工具是否达标:是 工具是否报毒:暂未测试(若大小一致却依然报毒,请添加信任或关闭杀毒软件) 工具下载地址:http://yunpan.cn/cfxEAPKpPxzfg  提取码 ba30 工具作者:易轩 联系方式:邮箱:[email protecte

【ACOUG】2014.12.27ACOUG年会

祝贺ACOUG~2015 越来越好   刚刚过完2014年圣诞节,就迎来了ACOUG的最后一场沙龙,也作为ACOUG的本年度年会,老朋友相聚大家特别开心,下面来看看当时的场景ACOUG开始啦 ACOUG VP 仇实 me 斑点狗 老盖在演讲ing 老盖and me 乐奕and me 圣诞树很漂亮 Leonarding2014.12.27北京&winter分享技术~成就梦想Blog:www.leonarding.com

写在2014.12.31想说的话

时光总是匆匆,不管你愿不愿意,2014就在今天向我们挥手告别,又到了该写年终总结的时候,这一年是收获的一年,是纠结的一年,也是值得纪念的一年,岁月给我们带来的并不是年龄的增长,更多的是心态的成熟和变化.生活有时会逼迫你,不得不放走机遇,甚至不得不抛弃爱情,不要把别人对自己的放弃,变成自己对自己的放弃,人生的日子都是越过越少,剩下的日子越来越重要,所谓顺其自然,并非代表我们可以不努力,而是努力之后我们有勇气接受成败. 关于工作,这一年似乎敲的代码越来越少,也开始厌烦无聊的重复,一直在寻找一种能够在