当我在UIImagePickerController
中使用以下代码呈现UIPopoverController
时,我看到了相机光圈的奇怪动画:
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[popover setContentViewController:imagePicker animated:YES];
我还应该提到UIPopoverController
此时已经提供了另一个内容视图控制器,因此对setContentViewController
的调用正在将popover的内容更改为图像选择器。
这是显示图像选择器时的样子:
这里发生了什么?
答案 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]