2010-08-23 59 views
3

我正在使用自定义覆盖视图并showsCameraControls = NO。当我完成后,我dismissModalViewControllerAnimated:YES。事情似乎发生的是,虹膜出现完全关闭(即没有关闭动画 - 只是和它关闭),然后立即向下滑动关闭屏幕。什么/如何触发UIImagePickerController的近虹膜动画?

作为测试我手动叫viewWillDisappear上的UIImagePickerController这使得封闭的虹膜出现,但没有一次流畅的动画效果。

我也试过在包装长期动画交易解雇和刚才的底层导航工具栏的重新appearence放缓。虹膜的表现如上。

我不希望有使自己的虹膜动画 - 这将是酷!

PS:使用SDK 4.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上被调用两次 - 我不确定它是否保证安全。

而且状态栏出现在其上恼人的光圈。

我希望其他人有更好的解决办法?