AVCaptureVideoPreviewLayer在Size类下的自动旋转

时间:2017-04-05 16:55:10

标签: ios calayer ios-autolayout size-classes auto-rotation

一旦AVCaptureSession开始运行并按如下方式将其添加到UIView,我手动创建AVCaptureVideoPreviewLayer(一种CALayer):

 func captureSessionStartedRunning(session:AVCaptureSession?) {
    if let captureSession = session {
        if let previewLayer = AVCaptureVideoPreviewLayer.init(session: captureSession) {
            previewLayer.frame = self.view.bounds
            self.view.layer.addSublayer(previewLayer)
            previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
        }
    }
}

我对使用尺寸类的自动旋转没有经验,所以有人可以告诉我在这里处理自转的最简单方法是什么?

1 个答案:

答案 0 :(得分:2)

覆盖:

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubViews()
    previewLayer.frame = self.view.bounds
}

每当您的视图布局发生更改时,它都会将图层的大小更新为视图的大小。

您可能还想将previewLayer的.videoGravity更改为.aspectFill