0

当我使用以下代码显示UIImagePickerControllera时,我看到了相机光圈的奇怪动画:UIPopoverController

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

我还应该提到,此时UIPopoverController已经与另一个内容视图控制器一起呈现,因此调用setContentViewController将弹出框的内容更改为图像选择器。

这是显示图像选择器时的样子: 奇怪的光圈快门动画

这里发生了什么?

4

1 回答 1

0

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

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

无论如何,解决方案是[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]
于 2012-12-20T20:18:10.047 回答