【发布时间】:2016-11-18 15:48:49
【问题描述】:
我使用了与以下问题中显示的代码类似的代码:How to scan for QR codes on button press?。 我现在可以一直激活相机预览,并且仅在按下按钮时进行扫描。 我的问题是,我发现如果我(不小心)在关注二维码之前按下按钮,阅读器会自动扫描它看到的下一个二维码。 有什么方法可以解决任何意外按下按钮的问题,并且只在看到二维码时扫描二维码?
任何帮助将不胜感激!
【问题讨论】:
我使用了与以下问题中显示的代码类似的代码:How to scan for QR codes on button press?。 我现在可以一直激活相机预览,并且仅在按下按钮时进行扫描。 我的问题是,我发现如果我(不小心)在关注二维码之前按下按钮,阅读器会自动扫描它看到的下一个二维码。 有什么方法可以解决任何意外按下按钮的问题,并且只在看到二维码时扫描二维码?
任何帮助将不胜感激!
【问题讨论】:
经过一番摸索,我终于找到了解决方案……
我基本上已经创建了一个按钮,如果检测到 QR 码,该按钮将出现在我的相机预览上。这个按钮默认是隐藏的:
scanButton.isHidden = true
然后使用以下代码仅在找到 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 函数,将这些数据传递到另一个我可以使用它的视图控制器。
希望这是有道理的,并帮助其他人避免我所做的所有挠头!
【讨论】: