什么/如何触发UIImagePickerController的close-iris动画?

时间:2010-08-23 12:17:48

标签: iphone camera

我正在使用自定义叠加视图和showsCameraControls = NO。当我完成后,我解雇了ModalViewControllerAnimated:YES。似乎发生的事情是虹膜看起来完全关闭(即没有关闭动画 - 只是 poof 并且它已关闭)然后立即从屏幕上滑下来。

作为测试,我在UIImagePickerController上手动调用了viewWillDisappear,这使得关闭的虹膜出现,但再次没有平滑的动画。

我还尝试在一个长动画事务中包装dismiss,这只会使底层导航工具栏的重新显示速度变慢。虹膜表现如上。

我不想制作自己的虹膜动画 - 那会很酷!

PS:使用sdk 4.0

1 个答案:

答案 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上被调用两次 - 我不确定它是否安全。

状态栏也会出现在虹膜上方,这很烦人。

我希望别人有更好的解决方案?