0

我看到相機光圈的一個奇怪的動畫,當我在一個UIPopoverController呈現UIImagePickerController用下面的代碼:古怪的相機光圈快門動畫

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

我還要提到的是,UIPopoverController已經呈現此時另一個內容視圖控制器,因此對setContentViewController的調用正在將彈出窗口的內容更改爲圖像選擇器。

這是什麼樣子時,將顯示圖片選擇器: weird iris shutter animation

這到底是怎麼回事?

+0

你得到與'動畫一樣的效果:NO'? –

+0

是的。還是)感謝你的建議 :) – Quentin

回答

0

經過幾個月的燉過,我想出瞭解決方案!

快門動畫下難看的黑條有一個事實,即UIPopoverControllerUINavigationController,因爲它的設置UIImagePickerController作爲內容視圖控制器之前的內容視圖控制器做。黑色欄的高度與UINavigationController的導航欄高度相同。

無論如何,解決方案是在將UIPopoverController's內容視圖控制器設置爲UIImagePickerController之前,將彈出式內容大小設置爲[imagePicker contentSizeForViewInPopover]

下面是一些代碼:

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]