Caméra iPhone et sélecteur d'images
-
06-07-2019 - |
Question
J'ai trouvé de nombreuses informations sur l'utilisation de UIImagePickerController pour permettre à l'utilisateur de choisir l'image qu'il souhaite parmi les données de l'application Photos. Je me demande comment je peux créer le même effet sur la version 3.0, car il ne semble plus que beaucoup de l'ancien code fonctionne plus. De plus, j'aimerais que l'utilisateur puisse prendre une nouvelle photo à partir de cette même fenêtre contextuelle.
Merci pour toute aide!
La solution
Fonctionne en 3.0, comme avant. Je ne crois pas qu'il y ait eu de changement. Je viens d'allouer / init un UIImagePickerController et de le transmettre à presentModalViewController, comme ceci:
- (void) chooseImageFromLibrary {
if( ![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary] ) return;
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.delegate = self;
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePickerController.allowsImageEditing = YES;
[self presentModalViewController:imagePickerController animated:YES];
}
- (void) chooseImageFromCamera {
if( ![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] ) return;
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.delegate = self;
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.allowsImageEditing = YES;
[self presentModalViewController:imagePickerController animated:YES];
}
Implémentez également les méthodes de délégation:
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingImage:(UIImage *)image
editingInfo:(NSDictionary *)editingInfo {
// Do something with the image here.
[[picker parentViewController] dismissModalViewControllerAnimated:YES];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[[picker parentViewController] dismissModalViewControllerAnimated:YES];
}