UIImagePickerController AllowsEditing not working UIImagePickerController AllowsEditing not working ios ios

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)}