我已經開始使用UIImagePickerController捕獲靜止圖像的項目。由於疊加層和剛拍攝的圖像之間的互動不良,我放棄了使用這種簡單的機制。問題如下:如果您的疊加層處於活動狀態,並且拍攝照片,則當用戶出現使用或重新拍攝圖像的選項時,剛拍攝的圖像會旋轉以填充縱向方向。發生這種情況時,無法關閉疊加層,或者旋轉疊加層以對應於新的靜態圖像預覽方向。不好。使用AV基金會時旋轉AV視頻預覽區域和其他元素
我決定嘗試使用AV Foundation的各種機制來重新實現UIImagePickerController的靜態圖像捕獲行爲。這已經非常容易設置,但我仍然有一些揮之不去的問題:
1)我想重新定位機制類似於UI在標準UIImagePickerController中的工作方式。在此控制器中,如您所知,無論手機如何旋轉,按鈕欄始終保持固定在縱向方向的底部。在這個按鈕欄中,按鈕中的字形本身會旋轉,但其他一切都保持不變。重疊控制,閃光燈設置,相機切換和選項將重新定向。如何讓這個標籤欄在旋轉這些其他元素時保持固定?有沒有辦法從旋轉中排除某些元素?
2)在進行自動重新定向時,我希望AVVideoCaptureLayer始終保持活動並佔據整個屏幕。當設備執行重新定向旋轉時,該圖層變得奇怪(縮小),視頻輸入本身偏離90度。顯然,此圖層正在旋轉,但不是全屏尺寸,並且視頻Feed本身的行爲並不像預期的那樣。我希望視頻保持固定,並在整個旋轉過程中佔據整個屏幕,並且始終處於啓用狀態,並且在旋轉過程中不會調整預覽大小。但我也希望能夠像第1項那樣做,並且要調整某些元素。
任何示例代碼說明如何實現這一點非常感謝。
謝謝。很棒的解決我只是剔除了一堆轉換和框架大小調整。你的解決方案要簡單得多。做得好。 – CocoaEv
剛剛發現在AVCaptureVideoPreviewLayer上使用orientation屬性已被棄用。我使用更新後的解決方案更新了以下答案。再次感謝@Jaret Ward! – CocoaEv
**這個答案在iOS 6 **中不推薦使用。 – sabalaba