提问者:小点点

SwiftUI条形码不显示


我需要创建一个基于现有文本的条形码。我找到了许多解决方案,但没有一个工作,而不是条形码,我看到的只是一个白色矩形。这里是不工作的代码,但也许它会帮助您找到解决方案

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)
    }
}

共1个答案

匿名用户

您需要在makeuiview中返回一个完全初始化的视图。

从文档中:

创建视图对象并配置其初始状态。

以下代码适用于我:

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函数不执行任何操作,因为条形码属性不会更改。