Что вы можете сделать, так это добавить свой UIActivityInidicatior в представление UIImagePicker, прежде чем отклонить его.
Вот аналогичная вещь, которую я делаю, когда сжимаю изображение после того, как пользователь нажал кнопку использования. Обратите внимание на NSTimer - это хитрый трюк, чтобы заставить iphone действительно отображать добавляемый вами интерфейс:
на didFinishPickingImage:
//this will add the UIActivityInidicatior to the picker view
(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {
showActivity(@"Compressing Image", picker.view);
//this is a hack so the progress label will show up
[NSTimer scheduledTimerWithTimeInterval: 0.0f
target: self
selector: @selector(compress:)
userInfo: image
repeats: NO];
}
//the Compress method
(void) compress:(NSTimer *)inTimer {
NSAutoreleasePool *_pool = [[NSAutoreleasePool alloc] init];
//do some work
[[self getPicker] dismissModalViewControllerAnimated:YES];
//dismiss the view we added to the picker
showActivity(nil, [self getPicker].view);
[_pool release];
}
Обратите внимание, что я держу UIImagePickerController
снаружи, чтобы я мог ссылаться на него из вызванного сообщения.
showActivity
- это простой метод, который добавляет некоторый интерфейс к данному представлению.