生成二维码
import SwiftUI
import CoreImage.CIFilterBuiltins
struct ContentView: View {
let qrCode: String = "二维码内容"
@State private var image: UIImage?
var body: some View {
VStack {
if let image = image {
Image(uiImage: image)
.resizable()
.interpolation(.none)
.frame(width: 100, height: 100)
}
Button(action: { generateCode() }) {
Text("生成二维码")
}
}
}
// 生成二维码
private func generateCode() {
guard image == nil else { return }
let context = CIContext()
let filter = CIFilter.qrCodeGenerator()
filter.message = Data(qrCode.utf8)
guard
let outputImage = filter.outputImage,
let cgImage = context.createCGImage(outputImage, from: outputImage.extent)
else { return }
self.image = UIImage(cgImage: cgImage)
}
}
#Preview {
ContentView()
}