ALAssetsLibrary读取相册里面的图片

时间:2021-09-11 23:42:29

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第三方的代码