Objective-C では、これを行うことができます。
if ( UIDeviceOrientationIsPortrait( deviceOrientation ) || UIDeviceOrientationIsLandscape( deviceOrientation ) ) {
AVCaptureVideoPreviewLayer *previewLayer = (AVCaptureVideoPreviewLayer *)self.previewView.layer;
previewLayer.connection.videoOrientation = (AVCaptureVideoOrientation)deviceOrientation;
}
しかし、Swift では、この最後の行を翻訳する最良の方法は何ですか? 「deviceOrientation as AVCaptureVideoOrientation」はできません。
これまでに思いついたのは次のとおりです。
if(UIDeviceOrientationIsPortrait(deviceOrientation) || UIDeviceOrientationIsLandscape(deviceOrientation)) {
let myPreviewLayer: AVCaptureVideoPreviewLayer = self.previewLayer
myPreviewLayer.connection.videoOrientation = AVCaptureVideoOrientation.init(rawValue: deviceOrientation.rawValue-1)!
}
しかし、これはエレガントではないようです。-1 は 1 日の終わりの単なる列挙型であり、UIDeviceOrientation 列挙型の位置 0 には AVCaptureVideoOrientation にはない「不明な」ものがあるため、そこにあります...