This problem does not exist on the iPad, and by default, the overlay view is behind the shutter animation. But on the iPhone, the overlay appears in front.
I found a solution that worked for me.
In this method, you should set your overlay view as a subitem:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { if (!viewController) return; UIView* controllerViewHolder = viewController.view; UIView* controllerCameraView = [[controllerViewHolder subviews] objectAtIndex:0]; UIView* controllerPreview = [[controllerCameraView subviews] objectAtIndex:0]; [controllerCameraView insertSubview:self.overlayView aboveSubview:controllerPreview]; }
Hope this helps
Source: http://www.alexcurylo.com/blog/2009/06/18/uiimagepickercontroller-in-3-0/
source share