2016-11-18 76 views
0

我已经使用类似的代码来显示在下面的问题:How to scan for QR codes on button press?。 我现在可以始终激活相机预览,并且只能在按下按钮时才进行扫描。 我的问题是,我发现如果我(意外)在将焦点放在QR码之前按下按钮,阅读器将自动扫描它看到的下一个QR码。 有没有什么办法可以解决任何意外的按键操作,并且只有扫描QR代码时才能查看?QR扫描按钮按下

任何帮助将不胜感激!

回答

0

很多头部划伤后,我终于研究出了解决办法...

我基本上创建了一个将出现在我的相机预览应该QR码被检测到的按钮。默认情况下,此按钮将被隐藏:

scanButton.isHidden = true 

然后使用以下代码仅在找到QR码时才显示按钮。这与代码一起使用以在找到时突出显示QR代码。

if metadataObj.stringValue != nil { 
      scanButton.isHidden = false 
      view.bringSubview(toFront: scanButton) 
      data = metadataObj.stringValue 
     } 

用于scanButton的动作则是:

@IBAction func scanQRButton(_ sender: UIButton) { 
    print("Scanned QR: " + (data)) 
    captureSession?.stopRunning() 
} 

我将然后添加SEGUE函数来将该数据传递到另一个视图控制器在哪里可以使用它。

希望这是有道理的,并帮助别人避免我所做的所有头部划伤!