Как отобразить «Фотопленку» напрямую с помощью imagePickerController

#ios #camera #uiimagepickercontroller #photo-gallery

#iOS #камера #uiimagepickercontroller #фотогалерея

Вопрос:

Я хочу напрямую открыть альбом «Фотопленка» с помощью imagePickerController вместо отображения всех 3 альбомов (фотопленка, библиотека фотографий, последний импорт).

Есть ли какой-нибудь способ сделать это?

Комментарии:

1. вы пытались установить свойство source type для imagepickercontroller?

Ответ №1:

Использовать

 imagePickerController.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
  

Это приведет вас непосредственно к фотопленке.

Комментарии:

1. таким образом, он может войти в этот альбом, но не может вернуться, чтобы выбрать другие альбомы

Ответ №2:

Это очень просто сделать… Для примера кнопки… Вы нажимаете на кнопку, а затем пытаетесь использовать :

 imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
  

Используя это, вы заставите контроллер использовать камеру.
.

 [self presentModalViewController:imgPicker animated:YES]; 
  

imgPicker — это имя моего контроллера

Комментарии:

1. камера не является фотопленкой

Ответ №3:

Для достижения этого у вас есть только один способ..

Вы можете создать customImagePickerController и отобразить в нем все изображения с фотопленки.

Для этого вы можете использовать collectionview

или иначе

https://github.com/rahulmane91/CustomAlbumDemo

Может быть, это полезно для вас.

Спасибо и с уважением, Нирав Залавадия

Ответ №4:

используйте рамки для фотографий

 @property(nonatomic , strong) PHFetchResult *assetsFetchResults;
     NSMutableArray *array;

    PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init];
    fetchOptions.predicate = [NSPredicate predicateWithFormat:@"title = %@", @"Custom Photo Album"];
    collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum
                                                          subtype:PHAssetCollectionSubtypeAny
                                                          options:fetchOptions].firstObject;

_assetsFetchResults = [PHAsset fetchAssetsInAssetCollection:collection options:nil];
  

Используйте приведенный выше код и укажите название своего альбома, данные которого вы хотите получить, вместо «Пользовательский фотоальбом»

 PHFetchResult *collectionResult = [PHAsset fetchAssetsInAssetCollection:collection options:nil];
for (int h=0; h<[collectionResult count]; h  ) {
    PHAsset *asset1 = collectionResult[h];   
    [_imageManager requestImageForAsset:asset1 targetSize:frame.size contentMode:PHImageContentModeAspectFill options:nil resultHandler:^(UIImage *result, NSDictionary *info)
     {
         [array2 addObject:result];
     }];
}
NSLog(@"array count%lu",(unsigned long)[array2 count]);
  

и используйте массив в любом месте, где вы хотите отобразить все изображения альбомов

Комментарии:

1. Извините, можете ли вы дать ответ и в Swift?

Ответ №5:

Вы можете использовать этот код для прямого доступа

 imagePickerController.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum
  

но у вас должен быть лучший пользовательский интерфейс

Попробуйте этот фреймворк, который предоставляет как cam, так и cam roll

https://github.com/hyperoslo/ImagePicker
https://github.com/hyperoslo/Gallery