我需要创建一个基于现有文本的条形码。我找到了许多解决方案,但没有一个工作,而不是条形码,我看到的只是一个白色矩形。这里是不工作的代码,但也许它会帮助您找到解决方案
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)
}
}
您需要在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
函数不执行任何操作,因为条形码属性不会更改。