2012-07-17 27 views
1

情景UIImagePicker前置攝像頭取向奇怪的行爲在ipad

,經過自動3秒倒計時從Front camera捕獲的圖像的應用程序。 一切都按預期工作。

代碼

//在viewDidLoad

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){ 
    imagePicker = [[UIImagePickerController alloc] init]; 
     self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
self.imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront; 
self.imagePicker.delegate = self; 
self.imagePicker.showsCameraControls = NO; 
[self.imagePicker.view setFrame:kAppFrame]; 
[self.view addSubview:self.imagePicker.view]; 
[self.view bringSubviewToFront:self.imagePicker.view]; 
} 

問題 我從來沒有告訴的iPad在某些情況下,後置攝像頭開始還在用它的後部裝置。

步驟來重現

  1. 握住相機Landscape orientation
  2. 點擊照片(會帶你到下一個屏幕,在導航控制器推)
  3. 在下一屏幕iPad的一半傾斜朝着face up orientation
  4. 回到相機屏幕,並使用後置相機看到它。

這是一個很奇怪的行爲,我甚至都不能理解它的原因。

+0

你可以說你的第3步更具體嗎? – Hiren 2012-07-18 06:51:25

+0

@CocoaMatters簡單地在下一個屏幕(從相機屏幕推送)中傾斜iPad並返回到相機屏幕是問題。有沒有技術/更好的方式來告訴第3步。 – thesummersign 2012-07-20 09:14:13

回答

0

它看起來像我找到了解決方案。 只是將整個代碼從viewDidLoad方法移動到viewWillAppear

它看起來像我依靠了很多的觀點之前,它出現了一定的方向。將代碼放入viewWillAppear可以保證視圖實際上已經準備好了方向集。我現在可以把任何東西放在上面。

我知道這不是正確的答案,但這是我做出的場景。任何修改/更正都是非常受歡迎的。

0

檢查您的代碼行self.imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;定義您打開設備的前置vamera。

現在你的第二個問題:我不知道,但你必須旋轉90度的圖像。這可能是當你獲得圖像時,它會進入肖像模式。

+0

,是的,圖像旋轉90度,但我寫了一個類別來調整其方向,這不是一個問題。 – thesummersign 2012-07-20 05:29:14

+0

我不明白你的答案的前兩行是什麼意思。有什麼我失蹤或做錯了。 – thesummersign 2012-07-20 05:30:03

+0

我在iOS6中使用'UIImagePickerControllerCameraDeviceFront',它仍然激活背部相機... – Clay 2012-10-19 22:51:25

相關問題