2010-10-07 2 views
8

Я должен предоставить функциональность для выбора фотографий пользователем. Я использовал это:UIimagepicker контроллер только изображение

ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 

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

ответ

18

В основном вы пытаетесь установить «типы носителей». и к счастью для вас imagePicker имеет свойство только для того, что называется «mediaTypes». :), который получает массив типов мультимедиа для показа для выбора.

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

, но если вы действительно хотите, чтобы убедиться, что вы можете сделать это:

[imagePicker setMediaTypes: [NSArray arrayWithObject:kUTTypeImage]]; 

и не забудьте добавить в начало файла ... :)

#import <MobileCoreServices/UTCoreTypes.h> 

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

+4

Вам также нужно будет связать MobileCoreServices.framework с целями сборки> link binary с библиотеками> +> MobileCoreServices.framework' –

17

Вы получите предупреждение о компиляторе о несовместимых типах указателей (по крайней мере, в XCode 4) при добавлении kUTTypeImage в NSArray. Однако kUTTypeImage является CFStringRef, и согласно документации CFString CFStringRef совместим с NSString *. Поэтому, чтобы сделать компилятор счастливым, отлитый kUTTypeImage к NSString *:

picker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage]; 
+0

Большое спасибо, сверление этого материала занимает некоторое время ... –

1

UIImagePickerController по умолчанию используется только изображение. Просто не указывая типы носителей, он отображает только изображения для выбора.

Смежные вопросы