【发布时间】:2021-04-01 09:20:00
【问题描述】:
我在 SO 上看到过有关此问题的其他问题,但我的问题不同,因为我正在寻找使用先前使用情节提要创建的结构的解决方案。
我需要在 AVCaptureVideoPreviewLayer 上使用 StackView。
我有这样的看法:
我需要创建一个AVCaptureVideoPreviewLayer,将这一层置于您在上一张图片中看到的Stack Control 之下。
我的AVCaptureVideoPreviewLayer 是这样创建的:
let cameraPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
cameraPreviewLayer.videoGravity = .resizeAspectFill
cameraPreviewLayer.connection?.videoOrientation = .portrait
cameraPreviewLayer.frame = view.frame
view.layer.insertSublayer(cameraPreviewLayer, at: 0)
但为了确保图层创建在当前位置,我在Stack Control 下方创建了这个Preview View(见图)。
想法是将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,我会看到堆栈。
有什么想法吗?
【问题讨论】:
标签: swift avfoundation calayer swift5