我已经在SO上看到了有关此问题的其他问题,但是我的问题有所不同,因为我正在寻找使用以前使用情节提要创建的结构的解决方案。
我需要StackView
一个AVCaptureVideoPreviewLayer。
我有这样的看法:
我需要创建一种AVCaptureVideoPreviewLayer
方式,将该层Stack Control
放置在上一张图片中所看到的下方。
我的AVCaptureVideoPreviewLayer
WAS是这样创建的:
let cameraPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
cameraPreviewLayer.videoGravity = .resizeAspectFill
cameraPreviewLayer.connection?.videoOrientation = .portrait
cameraPreviewLayer.frame = view.frame
view.layer.insertSublayer(cameraPreviewLayer, at: 0)
但是为了确保将在当前位置创建该图层,我在Preview View
下面创建了该图层Stack Control
(参见图片)。
想法是添加AVCaptureVideoPreviewLayer
到该视图。
因此,我将代码更改为:
let cameraPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
cameraPreviewLayer.videoGravity = .resizeAspectFill
cameraPreviewLayer.connection?.videoOrientation = .portrait
cameraPreviewLayer.frame = view.frame
previewView.layer.insertSublayer(cameraPreviewLayer, at: 0)
也尝试过
previewView.layer.addSublayer(cameraPreviewLayer)
没办法,预览显示正常,但Stack Control
不存在。如果不插入,我会看到堆栈AVCaptureVideoPreviewLayer
。
有任何想法吗?
您需要做的是,
使用AVCapturePreviewLayer,并将其作为子图层添加到PreviewView。
PreviewView.layer.addSublayer(cameraPreviewLayer)
将previewView作为子视图添加到父视图
view.addSubview(PreviewView)
并将StackControl作为子视图添加到父视图
view.addSubview(StackControl)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句