什么/如何触发 UIImagePickerController 的关闭虹膜动画?

Posted

技术标签:

【中文标题】什么/如何触发 UIImagePickerController 的关闭虹膜动画?【英文标题】:What/How to triggers the close-iris animation of UIImagePickerController? 【发布时间】:2010-08-23 12:17:47 【问题描述】:

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

作为测试,我在 UIImagePickerController 上手动调用了 viewWillDisappear,这使得闭合的虹膜出现,但又没有流畅的动画。

我还尝试在较长的动画事务中包装解除,这只会使底层导航工具栏的重新出现速度变慢。虹膜的行为与上述相同。

我不想自己制作虹膜动画——那太不酷了!

PS:使用 sdk 4.0

【问题讨论】:

【参考方案1】:

为了部分回答我自己的问题,到目前为止我能想到的最好的方法是:

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

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

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

【讨论】:

以上是关于什么/如何触发 UIImagePickerController 的关闭虹膜动画?的主要内容,如果未能解决你的问题,请参考以下文章

如何将UIImagePicker图像转换为字节数组objective-c

什么/如何触发 UIImagePickerController 的关闭虹膜动画?

如何触发dragstart的小结,浅谈什么时候应该触发dragstart

Qt不同类之间如何emit信号进行触发操作?

☀️BFC是什么?如何触发?有什么应用场景?

☀️BFC是什么?如何触发?有什么应用场景?