Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何通过swift使AVCaptureSession全屏扫描?_Ios_Swift_Avfoundation_Avcapturesession - Fatal编程技术网

Ios 如何通过swift使AVCaptureSession全屏扫描?

Ios 如何通过swift使AVCaptureSession全屏扫描?,ios,swift,avfoundation,avcapturesession,Ios,Swift,Avfoundation,Avcapturesession,我有一个问题,有没有办法在我的图层中的任何地方扫描qrcode/条形码。 我只把我的QRCODE /条形码放在中间层,得到值。 当我将qrcode/条形码放在右上方时,无法获得价值。 你有办法修好它吗 private func doInitialSetup() { clipsToBounds = true captureSession = AVCaptureSession() guard let videoCaptureDevice = AVCaptur

我有一个问题,有没有办法在我的图层中的任何地方扫描qrcode/条形码。
我只把我的QRCODE /条形码放在中间层,得到值。 当我将qrcode/条形码放在右上方时,无法获得价值。

你有办法修好它吗

private func doInitialSetup() {
    clipsToBounds = true
    captureSession = AVCaptureSession()
        
    guard let videoCaptureDevice = AVCaptureDevice.default(for: .video) else { return }
    let videoInput: AVCaptureDeviceInput
    do {
        videoInput = try AVCaptureDeviceInput(device: videoCaptureDevice)
    } catch let error {
        print(error)
        return
    }
        
    if (captureSession?.canAddInput(videoInput) ?? false) {
        captureSession?.addInput(videoInput)
    } else {
        scanningDidFail()
        return
    }
       
    let metadataOutput = AVCaptureMetadataOutput()
        
    if (captureSession?.canAddOutput(metadataOutput) ?? false) {
        captureSession?.addOutput(metadataOutput)
           
        metadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
        metadataOutput.metadataObjectTypes = [.qr, .ean8, .ean13, .pdf417, .code128]
        metadataOutput.rectOfInterest = UIScreen.main.bounds
    } else {
        scanningDidFail()
        return
    }
        
    self.layer.session = captureSession
    self.layer.videoGravity = .resizeAspectFill
        
    captureSession?.startRunning()
}

当然是不正确的,这应该是一个包含规范化(即
0.0…1.0
)值的CGRect


只需删除这一行,默认值为“全屏”,如您所需。

我删除了,但不工作。
metadataOutput.rectOfInterest = UIScreen.main.bounds