#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