如何获取存储在设备中的所有图像,并在iPhone sdk中将它们显示为图库

我希望将所有图像存储在设备中,并在我的iPhone应用程序中将其显示为图库。 UIImagePickerController以缩略图视图显示所有照片,并且在选择每张照片时,我们只获取该特定所选图像的数据,而不想一次性获取所有照片并将其显示为图库。 这是可能的,如果是,请告诉我如何做到这一点。 AssetLibrary有什么用? 它是否对我需要实现的目标有所帮助。如果是,请告诉我如何使用AssetLibrary实现这一目标。

ALAssetsLibrary的一个实例提供对Photos应用程序控制下的video和照片的访问。

该库包括保存的照片专辑中的那些,来自iTunes的那些以及直接导入设备的那些。 您可以使用它来检索所有资产组的列表,并将图像和video保存到已保存的照片相册中。

ELCImagePickerController是一个示例项目,用于获取iPhone相册中的所有照片。

您可以使用资源库从设备获取所有照片。 我在我的应用中实现了这个

-(void)getAllPhotos{ NSArray *imageArray=[[NSArray alloc] init]; NSMutableArray *mutableArray =[[NSMutableArray alloc]init]; NSMutableArray* assetURLDictionaries = [[NSMutableArray alloc] init]; ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; void (^assetEnumerator)( ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) { if(result != nil) { if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) { [assetURLDictionaries addObject:[result valueForProperty:ALAssetPropertyURLs]]; // NSLog(@"assestlibrarymurari%@",assetURLDictionaries); NSURL *url= (NSURL*) [[result defaultRepresentation]url]; [library assetForURL:url resultBlock:^(ALAsset *asset) { UIImage *img = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]]; if(img){ [mutableArray addObject:img]; } // [mutableArray addObject:[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]]]; if ([mutableArray count]==count) { imageArray=[[NSArray alloc] initWithArray:mutableArray]; [self allPhotosCollected:imageArray]; } } failureBlock:^(NSError *error){ NSLog(@"operation was not successfull!"); } ]; } } }; NSMutableArray *assetGroups = [[NSMutableArray alloc] init]; void (^ assetGroupEnumerator) ( ALAssetsGroup *, BOOL *)= ^(ALAssetsGroup *group, BOOL *stop) { if(group != nil) { [group enumerateAssetsUsingBlock:assetEnumerator]; [assetGroups addObject:group]; NSLog(@"AssetGroup%@",assetGroups); count=[group numberOfAssets]; } }; assetGroups = [[NSMutableArray alloc] init]; [library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:assetGroupEnumerator failureBlock:^(NSError *error) {NSLog(@"There is an error");}]; } 

在ViewDidLoad或您需要的地方调用此方法。 我希望这能帮到您。