ALAssetsLibrary读取相册里面的图片

本文介绍如何使用Objective-C访问iOS设备上的相册,并通过ALAssetsLibrary枚举不同类型的相册组,如保存的照片、相册、事件等,进一步获取各组内的照片资源。

self.m_library = [[ALAssetsLibrary alloc] init];

然后设置 

NSUInteger type = ALAssetsGroupLibrary | ALAssetsGroupAlbum | ALAssetsGroupEvent |

    ALAssetsGroupFaces | ALAssetsGroupPhotoStream;

    self.m_assetsFilter   = [ALAssetsFilter allPhotos];

下面写一些的回调函数块

 ALAssetsLibraryGroupsEnumerationResultsBlock resultsBlock = ^(ALAssetsGroup *group, BOOL *stop)

    {//获取块信息,就是分组的信息

        if (group)

        {

            [group setAssetsFilter:self.m_assetsFilter];

            

            if (group.numberOfAssets > 0)

            {

                temp.m_ALAssetsGroup = group;

                [self.m_groupsArray addObject:temp];

            }

            

        }

        else

        {

            [self.m_contentCollectView reloadData];

        }

    };

    ALAssetsLibraryAccessFailureBlock failureBlock = ^(NSError *error)

    {

        NSLog(@"failure");

    };

    

    [self.m_library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos

                                      usingBlock:resultsBlock

                                    failureBlock:failureBlock];

    

    [self.m_library enumerateGroupsWithTypes:type

                                      usingBlock:resultsBlock

                                    failureBlock:failureBlock];

下面是获取每一组的里面ALAsset的


ALAssetsGroupEnumerationResultsBlock resultsBlock = ^(ALAsset *asset, NSUInteger index, BOOL *stop) {

        

        if (asset)

        {

            NSString *type = [asset valueForProperty:ALAssetPropertyType];

            if ([type isEqual:ALAssetTypePhoto])

            {


            }

        }

        

        else if (self.m_subArray.count > 0)

        {

            [self performSelectorOnMainThread:@selector(reloadSubData:) withObject:m_indexPath waitUntilDone:NO];

        }

    };

    

    [assetsGroup enumerateAssetsUsingBlock:resultsBlock];


这样每一组的里面的内容都展示出来



还有可以参考

CTAssetsPickerController第三方的代码

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值