Получить список всех фотоальбомов и миниатюр для каждого альбома

Как мне получить список всех фотоальбомов в 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, в зависимости от ваших потребностей.