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

Как получить список всех фотоальбомов в iOS?Я знаю, что средство выбора изображений должно где-то иметь их список, поскольку оно отображает их все пользователю.Как только у меня появятся фотоальбомы, как мне отобразить миниатюры всех изображений в определенном альбоме?Кажется, я ничего не могу найти в документации, но я уверен, что должен быть способ сделать это.

Ответы [ 3 ]

20 голосов
/ 14 марта 2012

Вы не можете получить такую ​​информацию от UIImagePickerController, если вы об этом спрашиваете.

Взгляните на AssetsLibrary framework. Существует даже пример кода , который реализует пользовательскую программу выбора изображений.

19 голосов
/ 24 марта 2014

Перечислите и получите последнее изображение и его миниатюру.

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");
}];
0 голосов
/ 25 ноября 2017

Инфраструктура библиотеки активов устарела с iOS 9.0.Вместо этого используйте платформу Photos, которая в iOS 8.0 и более поздних версиях предоставляет больше возможностей и улучшенную производительность для работы с библиотекой фотографий пользователя.

Проверьте Рамки Photos и проверьте: PHAsset, PHAssetCollection,и PHCollectionList, в зависимости от ваших потребностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...