Получить список всех фотоальбомов и миниатюр для каждого альбома
Как получить список всех фотоальбомов в iOS? Я знаю, что средство выбора изображений должно где-то иметь их список, поскольку оно отображает их все пользователю. Как только у меня появятся фотоальбомы, как мне отобразить миниатюры всех изображений в определенном альбоме? Кажется, я ничего не могу найти в документации, но я уверен, что должен быть способ сделать это.
3 ответа
Вы не можете получить такую информацию от UIImagePickerController
если это то, что вы спрашиваете.
Взгляните на инфраструктуру AssetsLibrary. Существует даже пример кода, который реализует пользовательский инструмент выбора изображений.
Перечислите и получите последнее изображение и его миниатюру.
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
// Enumerate just the photos and videos group by using ALAssetsGroupSavedPhotos.
[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
// Within the group enumeration block, filter to enumerate just photos.
[group setAssetsFilter:[ALAssetsFilter allPhotos]];
// Chooses the photo at the last index
[group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop) {
// The end of the enumeration is signaled by asset == nil.
if (alAsset) {
ALAssetRepresentation *representation = [alAsset defaultRepresentation];
UIImage *latestPhoto = [UIImage imageWithCGImage:[representation fullScreenImage]];
UIImage *latestPhotoThumbnail = [UIImage imageWithCGImage:[alAsset thumbnail]];
// Stop the enumerations
*stop = YES; *innerStop = YES;
// Do something interesting with the AV asset.
//[self sendTweet:latestPhoto];
}
}];
} failureBlock: ^(NSError *error) {
// Typically you should handle an error more gracefully than this.
NSLog(@"No groups");
}];
Инфраструктура библиотеки активов устарела с iOS 9.0. Вместо этого используйте среду Photos, которая в iOS 8.0 и более поздних версиях предоставляет больше возможностей и повышает производительность для работы с библиотекой фотографий пользователя.
Проверьте структуру Фотографии и проверьте: PHAsset, PHAssetCollection и PHCollectionList, в зависимости от ваших потребностей.