iOS 获取系统相册数据(不是调系统的相册)
Framework:AssetsLibrary.framework
主要目的是获取到系统相册的数据,并把系统相册里的照片显示出来。
1、创建一个新的项目;
2、将AssetsLibrary.framework添加到项目中。
3、打开故事板,拖放一个集合视图(Collection View)组件到控制器中,然后拖放一个Image View到Collection View的默认单元格,在属性面板中修改Image View的显示照片方式为Aspect Fill.并且,在属性面板中设置默认单元格(collectionviewcell)的Identifier填入Cell;
4、将Collection View的数据源雨代理输出口(outlet)连接到控制器(在Collection View上右键,连接就行,或者是在控制器的代码里手动设置也行)
5、在项目中新增一个类,类名为MyCell,并且继承自uicollectionviewcell。
6、在故事板里,将collectionview单元格的类指向MyCell.
7、将imageview与代码关联起来(就是连到MyCell中),命名为imageView.
8、在控制器代码里导入
#import <AssetsLibrary/AssetsLibrary.h>
#import "MyCell.h"
并且让此类符合
UICollectionViewDataSource,UICollectionViewDelegate协议的规范,然后声明两个变量
{
ALAssetsLibrary *library;
NSMutableArray *imageArr;
}
并将uicollectionview链接到代码中。取名为collView;
- (void)viewDidLoad {
[super viewDidLoad];
library = [[ALAssetsLibrary alloc]init];
// 使用参数取出所有存储的文件照片
[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
NSMutableArray *tempArray = [[NSMutableArray alloc]init];
if (group != nil) {
[group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
if (result != nil) {
[tempArray addObject:result];
}
}];
//保存结果
imageArr = [tempArray copy];
NSLog(@"取出照片共%lu张",(unsigned long)imageArr.count);
[self.collView reloadData];
}
} failureBlock:^(NSError *error) {
//读取照片失败
}];
}
#pragma markUICollectionViewDataSource UICollectionViewDelegate
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
return 1;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return imageArr.count;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
static NSString *identifier = @"cell";
MyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
if (cell == nil) {
cell = [[MyCell alloc]init];
}
//取出每一张照片的数据并转换成UIimage格式
CGImageRef img = [[imageArr objectAtIndex:indexPath.row] thumbnail];
cell.imageView.image = [UIImage imageWithCGImage:img];
return cell;
}

iOS 获取系统相册数据(不是调系统的相册)的更多相关文章
- ios获取远程json数据
NSMutableArray *arr; arr = [[NSMutableArray alloc]init];//全局 NSURL *url = [NSURL URLWithString:@&quo ...
- 新闻实时分析系统 大数据Web可视化分析系统开发
1.基于业务需求的WEB系统设计 2.下载Tomcat并创建Web工程并配置相关服务 下载tomcat,解压并启动tomcat服务. 1)新建web app项目 创建好之后的效果 2)对tomcat进 ...
- iOS 直播-获取音频(视频)数据
iOS 直播-获取音频(视频)数据 // // ViewController.m // capture-test // // Created by caoxu on 16/6/3. // Copyri ...
- iOS 获取真机上系统动态库文件
iOS 获取真机上所有系统库文件 系统动态库文件存放真机地址(/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64) 在Mac\i ...
- IOS 获取系统时间戳
IOS 获取系统时间戳常用方法 通用方法有如下三种: NSLog(); NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:]; NSTimeInte ...
- iOS获取各种数据方法整理以及IDFA与IDFV使用环境
iOS获取APP版本号: NSString *AppVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBun ...
- 使用python获取整月每一天的系统监控数据生成报表
1.安装阿里开源监控工具tsar tsar官方网站 wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-c ...
- FFmpeg获取DirectShow设备数据(摄像头,录屏)
这两天研究了FFmpeg获取DirectShow设备数据的方法,在此简单记录一下以作备忘.本文所述的方法主要是对应Windows平台的. 1. 列设备 ffmpeg -list_devic ...
- 【转】FFmpeg获取DirectShow设备数据(摄像头,录屏)
这两天研究了FFmpeg获取DirectShow设备数据的方法,在此简单记录一下以作备忘.本文所述的方法主要是对应Windows平台的. 1. 列设备 ffmpeg -list_devic ...
随机推荐
- Google maps library的使用
公司的项目中用到了google地图API, 使用Google API开发就会用到Marker, 用来在google 地图上标注位置 但是google marker使用过程中也有个问题,就是如果在goo ...
- JBOss 端口没占用!
打开exlipse ,启动服务器 后,报如下错误:
- hibernate学习五(关系映射多对一与一对多)
一.多对一 多对一(或者一对多):在学生与老师的情况下,一个老师可以教多个学生,但一个学生只能被教一个老师教: 对于类:在多的那方拥有一的那方的一个实体 二.修改student.java和teache ...
- Struts的类型转换
struts中jsp提交的数据,struts会自动转换为action中的属性类型: 对于基本的数据类型以及日期类型会自动转换: 就像前面那一篇博客的代码封装一样,会把字符串类型传过来的数据转化为相应的 ...
- cocos2d-x 动画加速与减速
转自:http://novacreo.com/%E7%A8%8B%E5%BA%8F%E7%BB%84/cocos2d-x%E5%8A%A8%E7%94%BB%E5%8A%A0%E9%80%9F%E4% ...
- linux centos6 NAT 端口转发
有很多时候我们为了安全,需要将例如数据库服务器放到内网中.但是有些时候又系统给外网开一个端口,这时就可以利用外网的服务器进行一个端口转发.今天我们以centos6 为例进行端口转发配置. 首先vi / ...
- hdu 5445 Food Problem 多重背包
Food Problem Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5 ...
- hdu 5437 Alisha’s Party 优先队列
Alisha’s Party Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_sh ...
- 新浪旗下的SAE云服务入门
前言: 云服务已经火热很多年了,到了现在已经基本进入稳定期,稍微有实力的公司都会推出免费的云存储,像百度的还几个T,速度也不错.如果不担心数据安全问题,代替平时的U盘还是没有问题.而SAE是新浪在20 ...
- [Bootstrap] 5. Button and well
Element Identification There are a number of classes in Bootstrap that help add prominence to a page ...