Swift 3 检测1行多个条码
Swift 3 detect multiple barcode in 1 line
您好,我正在使用 swift3
和 AVFoundation
来检测帐单的条形码。我的帐单一行最多有 3 个条形码。如何将全部条码合并为1串,并在一行中的所有条码都被检测并合并为1串后才停止运行?
这是我的样品账单
底部有3个条码
这是我的 AVCaptureMetadataOutputObjectsDelegate 函数
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) {
// This is the delegate'smethod that is called when a code is readed
for metadata in metadataObjects {
let readableObject = metadata as! AVMetadataMachineReadableCodeObject
let code = readableObject.stringValue
self.dismiss(animated: true, completion: nil)
self.delegate?.barcodeReaded(barcode: code!)
print(code!)
print(readableObject.type)
}
}
我们如何修改上面的代码以扫描所有 3 个条形码并将它们组合起来并在所有条形码都已解码时通知 Viewcontroller
?非常感谢任何帮助。谢谢
除非检测到3个条码然后组合代码,否则不要停止扫描:
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) {
// This is the delegate'smethod that is called when a code is headed
guard metadataObjects.count == 3 else { return }
var finalString: String = ""
for metadata in metadataObjects {
let readableObject = metadata as! AVMetadataMachineReadableCodeObject
let code = readableObject.stringValue
finalString.append(code!)
print(code!)
print(readableObject.type)
}
self.dismiss(animated: true, completion: nil)
self.delegate?.barcodeReaded(barcode: finalString)
}
您好,我正在使用 swift3
和 AVFoundation
来检测帐单的条形码。我的帐单一行最多有 3 个条形码。如何将全部条码合并为1串,并在一行中的所有条码都被检测并合并为1串后才停止运行?
这是我的样品账单
底部有3个条码
这是我的 AVCaptureMetadataOutputObjectsDelegate 函数
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) {
// This is the delegate'smethod that is called when a code is readed
for metadata in metadataObjects {
let readableObject = metadata as! AVMetadataMachineReadableCodeObject
let code = readableObject.stringValue
self.dismiss(animated: true, completion: nil)
self.delegate?.barcodeReaded(barcode: code!)
print(code!)
print(readableObject.type)
}
}
我们如何修改上面的代码以扫描所有 3 个条形码并将它们组合起来并在所有条形码都已解码时通知 Viewcontroller
?非常感谢任何帮助。谢谢
除非检测到3个条码然后组合代码,否则不要停止扫描:
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) {
// This is the delegate'smethod that is called when a code is headed
guard metadataObjects.count == 3 else { return }
var finalString: String = ""
for metadata in metadataObjects {
let readableObject = metadata as! AVMetadataMachineReadableCodeObject
let code = readableObject.stringValue
finalString.append(code!)
print(code!)
print(readableObject.type)
}
self.dismiss(animated: true, completion: nil)
self.delegate?.barcodeReaded(barcode: finalString)
}