奇怪的相机虹膜快门动画

时间:2012-10-03 21:38:52

标签: ios ipad camera uiimagepickercontroller uipopovercontroller

当我在UIImagePickerController中使用以下代码呈现UIPopoverController时,我看到了相机光圈的奇怪动画:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[popover setContentViewController:imagePicker animated:YES];

我还应该提到UIPopoverController此时已经提供了另一个内容视图控制器,因此对setContentViewController的调用正在将popover的内容更改为图像选择器。

这是显示图像选择器时的样子: weird iris shutter animation

这里发生了什么?

1 个答案:

答案 0 :(得分:0)

经过几个月的炖煮,我想出了解决方案!

在将UIPopoverController设置为内容视图控制器之前,快门动画下方的难看的黑条与UINavigationController的内容视图控制器有UIImagePickerController这一事实有关。黑条的高度与UINavigationController的导航栏的高度相同。

无论如何,解决方法是在将[imagePicker contentSizeForViewInPopover]内容视图控制器设置为UIPopoverController's之前将弹出窗口内容大小设置为UIImagePickerController

以下是一些代码:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[popover setPopoverContentSize:[imagePicker contentSizeForViewInPopover] animated:YES]
[popover setContentViewController:imagePicker animated:YES];

关键是这个电话就在这里:

[popover setPopoverContentSize:[imagePicker contentSizeForViewInPopover] animated:YES]