UIImagePickerController AllowsEditing not working
When using UIImagePickerController's delegate
method - imagePickerController:didFinishPickingMediaWithInfo:
, we get the image using
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
This code will always return the original image, even if editing is ON.
Try using
UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
This will return the edited image if editing is ON.
Hope this helps.
The AllowsEditing
property simply allows the user to crop to a square if picking an image and trim the video if picking a video.
Any other functionality needs to be implemented with custom UI and code.
See this question:iPhone SDK - How to customize the crop rect in UIImagePickerController with allowsEditing on?
What you are showing in the screenshot is not part of UIImagePickerController
, unfortunately
SWIFT 3
I was having a hard time returning the cropped image (simple mistake on my end). Instead of using UIImagePickerControllerOriginalImage, you need UIImagePickerControllerEditedImage. See below:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { // The info dictionary contains multiple representations of the image, and this uses the cropped image. let selectedImage = info[UIImagePickerControllerEditedImage] as! UIImage // Set yourImageView to display the selected image. yourImage.image = selectedImage // Dismiss the picker. dismiss(animated: true, completion: nil)}