Как мне получить список всех фотоальбомов в iOS? Я знаю, что у сборщика изображений должен быть список из них где-то, так как он отображает их все для пользователя. Как только у меня появятся фотоальбомы, как я могу показывать эскизы всех изображений в определенном альбоме? Я не могу найти что-либо в документах, но я уверен, что должен быть способ сделать это.
Получить список всех фотоальбомов и миниатюр для каждого альбома
Ответ 1
Вы не можете получить такую информацию из UIImagePickerController
, если это то, о чем вы просите.
Взгляните на AssetsLibrary. Существует даже образец кода, который реализует пользовательский подборщик изображений.
Ответ 2
Перечислите и получите последнее изображение и его миниатюру.
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");
}];
Ответ 3
Структура библиотеки ресурсов устарела, начиная с iOS 9.0. Вместо этого используйте фреймворк Photos, который в iOS 8.0 и более поздних версиях предоставляет больше возможностей и лучшую производительность для работы с библиотекой фотографий пользователей.
Отметьте Photos framework и проверьте: PHAsset, PHAssetCollection и PHCollectionList, в зависимости от ваших потребностей.