美文网首页
Swift 原生条码二维码设置扫描区域

Swift 原生条码二维码设置扫描区域

作者: 光光6 | 来源:发表于2021-06-17 23:54 被阅读0次

    swift 原生二维码条码扫描代码, 设置条形码、二维码扫描中心点

    下面的代码部分, 是设置扫码响应区域, 也就是限制扫码区域.

    //捕获元数据输出流

        private func setupSessionOutput() {

            guard!Platform.isSimulatorelse{

                return

            }

            letvideoDataOutput =AVCaptureVideoDataOutput()

            videoDataOutput.setSampleBufferDelegate(self, queue:DispatchQueue.main)

            captureSession.addOutput(videoDataOutput)

            let output = AVCaptureMetadataOutput()

            captureSession.addOutput(output)

            output.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)

            output.rectOfInterest=CGRect(x:0, y:0, width:300/screenHeight, height:screenHeight/screenWidth)

            fortypeinmetadata{

                if !output.availableMetadataObjectTypes.contains(type){

                    return

                }

            }

            // 设置扫码支持的编码格式(如下设置条形码和二维码兼容)

            output.metadataObjectTypes = metadata

            videoPreviewLayer?.session = captureSession

            view.setNeedsLayout()

        }

    它是以右上角为(0, 0)点, 宽高接受的是宽高所占屏幕宽高的比例, 并且横纵坐标是颠倒的,, 进一步解释就是以右上角为(0,0)点, 扫码区域高度除以屏幕高度作为宽, 扫码区域宽度除以屏幕宽度作为高,所以它最终的值为CGRect(y/ScreenHeight, (ScreenWidth - leftPadding - scanWidth)/ScreenWidth, height/ScreenHeight, width/ScreenWidth), 这样就限制了它的扫码区域为一个固定的位置

    相关文章

      网友评论

          本文标题:Swift 原生条码二维码设置扫描区域

          本文链接:https://www.haomeiwen.com/subject/gmwhyltx.html