Ios 相机预览层不显示在Swift 4中

Ios 相机预览层不显示在Swift 4中,ios,swift,avfoundation,swift4,Ios,Swift,Avfoundation,Swift4,我正在创建一个ViewController,其中我希望在ViewController的角落中有一个稍小的UIView,以显示相机预览。我正在使用一个函数来实现这一点。但是,当我将小UIView传递到函数中时,相机预览不会显示。奇怪的是,如果我告诉函数在self.view上显示预览,一切正常,我就能看到相机预览。出于这个原因,我认为问题在于我插入图层或类似内容的方式 这是我用来显示预览的函数 func displayPreview(on view: UIView) throws {

我正在创建一个ViewController,其中我希望在ViewController的角落中有一个稍小的UIView,以显示相机预览。我正在使用一个函数来实现这一点。但是,当我将小UIView传递到函数中时,相机预览不会显示。奇怪的是,如果我告诉函数在
self.view
上显示预览,一切正常,我就能看到相机预览。出于这个原因,我认为问题在于我插入图层或类似内容的方式

这是我用来显示预览的函数

   func displayPreview(on view: UIView) throws {
        guard let captureSession = self.captureSession, captureSession.isRunning else { throw CameraControllerError.captureSessionIsMissing }

        self.previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
        self.previewLayer?.videoGravity = AVLayerVideoGravity.resizeAspectFill
        self.previewLayer?.connection?.videoOrientation = .portrait

        view.layer.insertSublayer(self.previewLayer!, at: 0)

        self.previewLayer?.frame = view.frame


    }
我从另一个函数中调用这个函数,该函数处理设置捕获会话和其他类似的事情

    func configureCameraController() {
        cameraController.prepare {(error) in
            if let error = error {
                print("ERROR")
                print(error)
            }else{

            }
            print("hello")
            try! self.cameraController.displayPreview(on: self.mirrorView)
        }
    }

    configureCameraController()

如何使相机预览层显示在较小的UIView上?

能否尝试添加以下内容

let rootLayer: CALayer = self.yourSmallerView.layer
rootLayer.masksToBounds = true
self.previewLayer.frame = rootLayer.bounds
rootLayer.addSublayer(self.previewLayer)
代替

view.layer.insertSublayer(self.previewLayer!, at: 0)
还要确保,
yoursmalerview.contentMode=UIViewContentMode.scaleToFill