我正在使用自定义叠加视图和showsCameraControls = NO。当我完成后,我解雇了ModalViewControllerAnimated:YES。似乎发生的事情是虹膜看起来完全关闭(即没有关闭动画 - 只是 poof 并且它已关闭)然后立即从屏幕上滑下来。
作为测试,我在UIImagePickerController上手动调用了viewWillDisappear,这使得关闭的虹膜出现,但再次没有平滑的动画。
我还尝试在一个长动画事务中包装dismiss,这只会使底层导航工具栏的重新显示速度变慢。虹膜表现如上。
我不想制作自己的虹膜动画 - 那会很酷!
PS:使用sdk 4.0
答案 0 :(得分:0)
为了部分回答我自己的问题,到目前为止我能想出的最好的是:
- (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
{
// do stuff
[self dismissModalViewControllerAnimated:YES];
// dismiss your custom overlay etc.
[uiImage release];
}
它实际上并不会为虹膜设置动画,但至少它会立即显示在屏幕上,以便用户识别照片拍摄完成。我也不是很高兴viewWillDisappear在UIImagePickerController上被调用两次 - 我不确定它是否安全。
状态栏也会出现在虹膜上方,这很烦人。
我希望别人有更好的解决方案?