Cómo crear un UIImagePickerController personalizado con imagen de pantalla completa ios
UIImagePickerController es una interfaz proporcionada por el sistema para obtener imágenes y videos.
El uso de la clase UIImagePickerController para obtener imágenes y videos se puede dividir aproximadamente en los siguientes pasos:
1. Inicialice la clase UIImagePickerController;
2. Establezca el tipo de fuente de datos de la instancia UIImagePickerController (se explica a continuación);
3.
4. Si necesita realizar modificaciones en la imagen, establezca AllowEditing =yes.
Hay tres tipos de fuentes de datos:
enum {
UIImagePickerControllerSourceTypePhotoLibrary , //de la galería
UIImagePickerControllerSourceTypeCamera , // De la cámara
UIImagePickerControllerSourceTypeSavedPhotosAlbum //Del álbum de fotos
};
Al utilizar estas fuentes, es mejor comprobar si los siguientes dispositivos las admiten;
if([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
{
NSLog(@"Support Camera");
}
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary])
{
NSLog(@"biblioteca de soporte");
}
if ([ UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
NSLog(@"Support Photo Library");
}
Llame al cámara para obtener Recursos
- (void)viewDidLoad {
[super viewDidLoad]
picker = [[UIImagePickerController alloc]init];
picker.view.backgroundColor = [UIColor orangeColor];
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
picker.sourceType = sourceType;
picker.delegate = self;
picker.allowsEditing = YES;
}
Lo anterior es solo un ejemplo de UIImagePickerController y sus propiedades, que deben llamarse en una ventana emergente. ventana de inicio cuando necesita obtener la imagen
[self presentViewController: selector animado: SÍ finalización: nil];
También necesitamos un proxy para obtener nuestra imagen seleccionada
UIImagePickerControllerDelegate
Uno de los proxies ***Uno de los tres métodos se abandonó en 3.0, dejando solo dos que necesitamos usar
p>
- (void)imagePickerController: (UIImagePickerController *)picker didFinishPickingMediaWithInfo: (NSDictionary
*)info;
Llamado cuando el usuario completa la selección;
- (void)imagePickerControllerDidCancel: (UIImagePickerController *)picker;
Llamado cuando el usuario cancela la selección;
- (void)imagePickerController: (UIImagePickerController *)picker p>
didFinishPickingMediaWithInfo: (NSDictionary *)info;
La información seleccionada está en info, que es un diccionario.
Claves en el diccionario:
NSString *const UIImagePickerControllerMediaType; especifica el tipo de medio seleccionado por el usuario (ampliado al final del artículo)
NSString * const UIImagePickerControllerOriginalImage;
NSString *const UIImagePickerControllerEditedImage; imagen modificada
NSString *const UIImagePickerControllerCropRect
NSString *const UIImagePickerControllerMediaURL
NSString *const UIImagePickerControllerReferenceURL; URL original
NSString *const UIImagePickerControllerMediaMetadata Este valor solo es válido cuando la fuente de datos es una cámara
Para obtener más parámetros de UIImagePickerController, consulte aquí.
Para conocer las funciones del proxy, consulte aquí.
UIImagePickerControllerMediaType contiene KUTTypeImage y KUTTypeMovie
KUTTypeImage contiene:
const CFStringRef kUTTypeImage tipo de imagen abstracta
const CFStringRef kUTTypeJPEG;< /p >
const CFStringRef kUTTypeJPEG2000;
const CFStringRef kUTTypeTIFF;
const CFStringRef kUTTypePICT;
const CFStringRef kUTTypeGIF;
const CFStringRef kUTTypePNG;
const CFStringRef kUTTypeQuickTimeImage;
const CFStringRef kUTTypeAppleICNS
const CFStringRef kUTTypeBMP;
const CFStringRef kUTTypeICO;
KUTTypeMovie contiene:
const CFStringRef kUTTypeAudiovisualContent; video de sonido abstracto
const CFStringRef kUTTypeMovie; formato de medios abstractos (sonido y video)
const CFStringRef kUTTypeVideo; video pero sin sonido
const CFStringRef kUTTypeAudio; solo sonido pero sin video
const CFStringRef kUTTypeQuickTimeMovie;
const CFStringRef kUTTypeMPEG;
const CFStringRef kUTTypeMPEG4;
const CFStringRef kUTTypeMP3;
const CFStringRef kUTTypeMPEG4Audio;
const CFStringRef kUTTypeAppleProtectedMPEG4Audio;