我正在尝试生成库德巴条形码,但无法使其正常工作。
这是我当前的代码:
import SwiftUI
import VisionKit
import CoreImage.CIFilterBuiltins
import RSBarcodes_Swift
import AVFoundation
class BarcodeViewModel: ObservableObject {
@Published var barcodeImage: Image? = nil
func generateBarcode(contents: String) {
let gen = RSUnifiedCodeGenerator.shared
gen.fillColor = UIColor.white
gen.strokeColor = UIColor.black
// Specify Codabar barcode type
let machineReadableCodeObjectType = AVMetadataObject.ObjectType.codabar.rawValue
// Ensure compatibility with the specified iOS version
if #available(iOS 15.4, *) {
print("Generating image with Codabar barcode: \(contents)")
if let uiImage = gen.generateCode("A00031326002A", machineReadableCodeObjectType: AVMetadataObject.ObjectType.codabar.rawValue) {
DispatchQueue.main.async {
self.barcodeImage = Image(uiImage: uiImage)
}
} else {
DispatchQueue.main.async {
self.barcodeImage = Image(systemName: "xmark.circle")
}
}
} else {
print("iOS version does not support RSCodaBarGenerator")
}
}
}
我正在尝试构建一个简单的条形码扫描和显示工具作为更大的应用程序的一部分。如果有帮助的话,我很乐意附上该文件的其余代码。
我一直在努力反对这个问题有一段时间了,我想我应该在这里问。
希望得到任何帮助,到目前为止我还没有在网上找到任何好的资源。
到目前为止,我已经尝试了https://github.com/yeahdongcn/RSBarcodes_Swift中的不同示例语句,但一直无法弄清楚。我只是不断收到“未选择代码生成器”的信息。错误,我不知道如何克服它。
这就是我修复它的方法:https://github.com/Coledunsby/CDCodabarView
请注意,从版本 1.1.0 开始,您必须按照此处所述手动编辑代码:https://github.com/Coledunsby/CDCodabarView/issues/8
此后这段代码对我有用:
import CDCodabarView
// Define your SwiftUI wrapper for the CDCodabarView
struct SwiftUIBarcodeView: UIViewRepresentable {
var code: String
func makeUIView(context: Context) -> CDCodabarView {
let codabarView = CDCodabarView()
codabarView.backgroundColor = .white // Set background color to white
return codabarView
}
func updateUIView(_ uiView: CDCodabarView, context: Context) {
uiView.code = code
uiView.barColor = .black
uiView.textColor = .red
uiView.padding = 50
uiView.hideCode = false
uiView.font = UIFont(name: "AvenirNext-Regular", size: 15.0)!
uiView.backgroundColor = .white // Ensure background color is set to white on update as well
}
}
希望对同样遇到此问题的人有所帮助!