一旦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
}
}
}
我对使用尺寸类的自动旋转没有经验,所以有人可以告诉我在这里处理自转的最简单方法是什么?
答案 0 :(得分:2)
覆盖:
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubViews()
previewLayer.frame = self.view.bounds
}
每当您的视图布局发生更改时,它都会将图层的大小更新为视图的大小。
您可能还想将previewLayer的.videoGravity
更改为.aspectFill