To partially answer my own question, the best I've been able to come up with so far is:
- (void)imagePickerController:(UIImagePickerController*)picker
didFinishPickingMediaWithInfo:(NSDictionary*)info
{
[picker viewWillDisappear:YES];
[self performSelector:@selector(processPickerImage:)
withObject:[[info objectForKey:UIImagePickerControllerOriginalImage] retain]
afterDelay:0.1];
}
-(void) processPickerImage:(UIImage *)uiImage
{
[self dismissModalViewControllerAnimated:YES];
[uiImage release];
}
In fact, it does not animate the aperture, but at least it is instantly displayed on the screen, so the user will know that the picture is being taken. I'm also not very happy that viewWillDisappear gets called twice in the UIImagePickerController - I'm not sure if it is guaranteed to be safe.
It also displays a status bar above the iris, which is annoying.
I hope someone has a better solution?
source
share