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 获取系统相册数据(不是调系统的相册)的更多相关文章

  1. ios获取远程json数据

    NSMutableArray *arr; arr = [[NSMutableArray alloc]init];//全局 NSURL *url = [NSURL URLWithString:@&quo ...

  2. 新闻实时分析系统 大数据Web可视化分析系统开发

    1.基于业务需求的WEB系统设计 2.下载Tomcat并创建Web工程并配置相关服务 下载tomcat,解压并启动tomcat服务. 1)新建web app项目 创建好之后的效果 2)对tomcat进 ...

  3. iOS 直播-获取音频(视频)数据

    iOS 直播-获取音频(视频)数据 // // ViewController.m // capture-test // // Created by caoxu on 16/6/3. // Copyri ...

  4. iOS 获取真机上系统动态库文件

    iOS 获取真机上所有系统库文件 系统动态库文件存放真机地址(/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64) 在Mac\i ...

  5. IOS 获取系统时间戳

    IOS 获取系统时间戳常用方法 通用方法有如下三种: NSLog(); NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:]; NSTimeInte ...

  6. iOS获取各种数据方法整理以及IDFA与IDFV使用环境

    iOS获取APP版本号: NSString *AppVersion  =  [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBun ...

  7. 使用python获取整月每一天的系统监控数据生成报表

    1.安装阿里开源监控工具tsar tsar官方网站 wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-c ...

  8. FFmpeg获取DirectShow设备数据(摄像头,录屏)

    这两天研究了FFmpeg获取DirectShow设备数据的方法,在此简单记录一下以作备忘.本文所述的方法主要是对应Windows平台的. 1.       列设备 ffmpeg -list_devic ...

  9. 【转】FFmpeg获取DirectShow设备数据(摄像头,录屏)

    这两天研究了FFmpeg获取DirectShow设备数据的方法,在此简单记录一下以作备忘.本文所述的方法主要是对应Windows平台的. 1.       列设备 ffmpeg -list_devic ...

随机推荐

  1. 【不积跬步,无以致千里】五个常用的Linux监控脚本代码

    为大家提供五个常用Linux监控脚本(查看主机网卡流量.系统状况监控.监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告.监控CPU和内存的使用情况.全方位监控主机),有需要的朋友不妨看 ...

  2. ILSpy反编译工具的使用

    以前一直使用reflector来查看.net类库的一些信息,不过,自2011年2月份开始,reflector就开始转向收费软件了,所以爱好免费软件的开发者们转而开发自己的反编译软件.于是ILspy就因 ...

  3. HOG特征-理解篇

    网上去找关于HOG的资料,发现理解性的较少,并且较为冗长,为方便大家理解便自己写了篇,希望能对奋斗在特征提取第一线的同志们有所帮助: HOG即histogram of oriented gradien ...

  4. 取得root权限后怎么删除程序

    不知道这个算什么教程,随便一个分类吧,管理员不要扣我分啊,我也是为大家服务嘛,不对的话可以帮我处理下) 最近也学习了下,把我的X8(国行2.1版)给root了,怎么root,论坛里有很多帖子,这里就不 ...

  5. php读取图片成二进制流输出

    header( "Content-type: image/jpeg");$PSize = filesize('1.jpg');$picturedata = fread(fopen( ...

  6. Java ZIP File Example---refernce

    In this tutorial we are going to see how to ZIP a file in Java. ZIP is an archive file format that e ...

  7. 【转】int const A::func()和int A::func() const

    int const A::func() { return 0; }int A::func() const { return 0; } 上面的代码是合法的,其中A::func成员函数[只能在成员函数后面 ...

  8. C#开发-ftp操作方法整理

    1.整理简化了下C#的ftp操作,方便使用    1.支持创建多级目录    2.批量删除    3.整个目录上传    4.整个目录删除    5.整个目录下载 2.调用方法展示, var ftp ...

  9. java常用的包的简介

    java常用的包: java.lang:包含java语言的核心类,如String.math.system和thread类等,使用这个包下的类无需import导入,系统会自动导入这个包下的所有类.   ...

  10. ios代理设计模式

    代理设计模式的作用:     1.A对象监听B对象的一些行为,A成为B的代理     2.B对象想告诉A对象一些事情,A成为B的代理   代理设计模式的总结:     如果你想监听别人的一些行为,那么 ...