IOS开发—自定义多选相册

自定义多选相册

主要思路

  1. 导入AssetsLibrary框架
  2. 从资源库中获取获取资源组【0】,过滤【1】照片后在列表中显示组。
  3. 点击资源组进入对应的相册中,获取组中的所有照片资源【2】
【0】获取资源组
[_assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
        if (group) {
            [_assetsArray addObject:group];
            [_tableView reloadData];
        }
    } failureBlock:^(NSError *error) {
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提示" message:@"相册获取失败" delegate:self cancelButtonTitle:@"取消" otherButtonTitles: nil];
        [alert show];
    }];
【1】过滤
[_assetsGroup setAssetsFilter:[ALAssetsFilter allPhotos]];
【2】获取照片资源
- (void)getImages{
    _thumbnailMeasure = (SCREEN_WIDTH-(self.numberOfImageEachRow+1)*PHOTO_DEFAULT_MARGIN)/self.numberOfImageEachRow;
    CGRect frame = CGRectMake(0, 0, _thumbnailMeasure, _thumbnailMeasure);
    [self.assetsGroup enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
        if (result) {
            AssetView *assetView = [[AssetView alloc]initWithAsset:result WithFrame:frame];
            assetView.delegate = self;
            [_assetsArray addObject:assetView];
        }
    }];
}

相关操作

  1. 获取资源组名

    [_assetsGroup valueForProperty:ALAssetsGroupPropertyName];

  2. 获取资源组的海报缩略图

    [UIImage imageWithCGImage:_assetsGroup.posterImage];

  3. 获取照片资源的正方形缩略图

    [UIImage imageWithCGImage:_asset.thumbnail];

  4. 获取照片资源完全分辨率的图像(先封装图像资源)

    [[asset defaultRepresentation] fullResolutionImage]];

  5. 获取资源类型

    [asset valueForProperty:ALAssetPropertyType];

Demo代码已上传github

https://github.com/Lotheve/LXXMutiAlbum

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-07 06:37:56

IOS开发—自定义多选相册的相关文章

IOS开发自定义CheckBox控件

IOS本身没有系统的CheckBox组件,但是实际开发中会经常用到,所以专门写了一个CheckBox控件,直接上代码 效果图: UICheckBoxButton.h文件如下: #import #import "Common.h" @interface UICheckBoxButton : UIControl { UILabel *label; UIImageView *icon; BOOL checked; id delegate; } @property (retain, nonat

iOS开发-自定义后台显示图片(iOS7-Background Fetch的应用)

之前在用电池医生的时候, 发现它有这样一个功能:当应用进入后台的时候, 会显示另外一张图片覆盖App Switcher显示的界面. 效果如下: 变成----> 而这样的一个功能, 对于保护用户隐私还是挺有用的. 这就涉及到了Background Fetch的使用.当然, Background Fetch有更多,更有用的功能, 详见-->iOS 7学习:多任务处理之Background Fetch 下面就介绍下后台图片切换的实现. 1.程序配置后台模式 操作如下: 2. AppDelegate.

iOS开发- 自定义遮罩视图(引导, 功能说明)源码+解析

iOS开发- 自定义遮罩视图(引导, 功能说明)源码+解析 我们平时使用App的时候, 经常在第一次使用的时候, 会有类似"新手教程"之类的东西, 来引导我们应该如何使用这个App. 但是这个"新手教程"不同于常规的引导页(引导页指第一次打开App时候, 弹出的那种介绍视图. 他是静态的, 不需要与用户交互, 可以直接一页页翻, 或者直接跳过.)所谓的"新手教程", 就是按照App的提示, 一步步跟着完成. 那这个"新手教程"

iOS开发自定义时间选取器

又是一年的暑假日期而至,小孩子放假,都会到在外打工的父母身边.孩子想父母,父母也思念着自己的孩子.我身边的亲戚朋友的孩子 也都来了.这个暑假又该热闹起来. 努力什么时候都不晚 我有一个表妹,今年参加完高考,对自己的成绩不是特别满意.上次我回老家,刚好她给我一起来上海.准备来上海锻炼一下. 车上我问她,准备去哪上学?她说不想上了,想打工.我没有怎么劝她,我想让她体验一下打工的生活,她就知道还是上学好. 一个高中生,出来找工作,困难可想而知.经姐姐介绍,进了一家餐厅工作.工资也不是很高.干了两天,我

iOS开发自定义键盘回车键Return Key

在iOS开发中,用户在进行文本输入的时候,往往会用到虚拟键盘上的回车键,也就是Return Key.回车键有时候可以是"完成"(表示输入结束),可以是"下一项"(连续信息输入),可以是"搜索"(网页中输入),可以是"发送"(邮件输入),可以是"加入"(比如连接Wi-Fi),等等.我们需要怎么设置呢?方法如下: (1)选中一个Text Field,点击右侧的"Show the Attributes

iOS 开发: 自定义相册, 保存多张图片到自定义相册中

1.自定义相册(兼容 iOS7 iOS8) - (void)viewDidLoad { //search all photo albums in the library    [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *group, BOOL *stop)     {         //compare the names of the albums        

iOS开发实战——摄像头与相册权限获取逻辑优化

在实际项目中,我们经常需要访问设备的摄像头或者相册,当第一次安装某个App的时候,系统便会弹出授权对话框,要求用户做出是否授权的判断.整体逻辑比较简单,但是在使用过程中需要对用户体验进行优化,否则会出现bug.该博客的示例代码已经上传至 https://github.com/chenyufeng1991/AuthorityOfCameraAndPhoto . 首先我先描述一下出现的问题.我以访问相册为例,实现代码如下: - (void)photoBtnPressed:(id)sender { /

[IOS 开发] 自定义(重写) UITableViewCell的高亮背景色

IOS的sdk中,对UITableViewCell的高亮背景色只支持两种颜色,分别为UITableViewCellSelectionStyleBlue和UITableViewCellSelectionStyleGray. 那么如何自定义这个颜色呢.一个思路是当用户点下cell时设置你想要的cell的背景色,当释放点击时给cell重新设回原来的背景色,这样就能达到预想的效果了. 下面是具体实现的代码: - (void)drawRect:(CGRect)rect { if (self.highlig

iOS开发-UITableViewController复选/多选实现2

iOS中如何实现多选? 基本思路是给cell绑定的数据设置一个标志位, 用来标识该cell是否被选中, 如果被选中则修改该标志位为YES, 并且把选中的行加入到可变数组中 如果选中时该标志位为YES则说明已经选中 那么此时需要需要把该标志位修改为NO 并且从选中数组中移除 实现过程,参考上一篇单选实现文章:http://blog.csdn.net/yangbingbinga/article/details/47057285: (1)创建相关的TableViewController 使用系统的Ce