SwiftUI 条码不显示

SwiftUI barcode does not show

我需要根据现有的条码创建条码 text.I 找到了很多解决这个问题的方法,但是 none 有效,我只看到一个白色矩形而不是条码。这是无效代码,但也许它会帮助您找到解决方案

struct TestBarCodeView: View {
    var body: some View {
        VStack {
            BarCodeView(barcode: "1234567890")
                .scaledToFit()
                .padding().border(Color.red)
        }
    }
}

struct BarCodeView: UIViewRepresentable {
    let barcode: String
    func makeUIView(context: Context) -> UIImageView {
        UIImageView()
    }

    func updateUIView(_ uiView: UIImageView, context: Context) {
        uiView.image = UIImage(barcode: barcode)
    }
}

您需要 return 在 makeUIView 中完全初始化视图。

来自文档:

Creates the view object and configures its initial state.

以下代码对我有用:

struct BarCodeView: UIViewRepresentable {
    let barcode: String
    func makeUIView(context: Context) -> UIImageView {
        let imageView = UIImageView()
        imageView.image = UIImage(barcode: barcode)
        return imageView
    }

    func updateUIView(_ uiView: UIImageView, context: Context) {
    }
}

updateUIView 函数什么都不做,因为条形码 属性 没有改变。