JPSImagePickerController 0.0.1

JPSImagePickerController 0.0.1

LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Dec 2014

Maintained by Unclaimed.

  • By
  • JP Simard

A pixel-perfect clone of iOS 7's UIImagePickerController, with a few improvements. I built this because Apple's image picker is difficult to modify. Works on both iPad & iPhone.



  • Front/Back camera switching
  • Flash on/off
  • Taking pictures in multiple orientations
  • Triggering a picture with the "volume up" hardware button
  • Confirmation screen
  • Zooming the image in the confirmation screen
  • Displaying a message in the confirmation screen



Drag the JPSImagePickerController folder into your project and link the MediaPlayer and AVFoundation frameworks to your project.


Just launch it modally and set its delegate:

JPSImagePickerController *imagePicker = [[JPSImagePickerController alloc] init];
imagePicker.delegate = self;
[self presentViewController:imagePicker animated:YES completion:nil];

Its delegate can respond to the following methods:

// Called immediately after the picture was taken
- (void)picker:(JPSImagePickerController *)picker didTakePicture:(UIImage *)picture;
// Called immediately after the "Use" button was tapped
- (void)picker:(JPSImagePickerController *)picker didConfirmPicture:(UIImage *)picture;

See sample Xcode project for more examples on how to configure.


  • Display a box around the tapped area when tapping to focus.
  • Per-element rotation of "flash", "camera switch" and "Cancel" buttons. This is tricky because we don't want our whole layout to change, just those buttons.
  • Better camera switching animation. It's currently a bit janky.
  • Full reproduction of UIImagePickerController's flash control. i.e. expanding to see "Auto", "On" & "Off"


This project is under the MIT license.