Swift QRコードの作成

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

ネット上に沢山あるんだけど、一応メモしておく。

文字列からQR化したCiImageを返すメソッド

private func makeQRCode( str:String )->CIImage?{
    let data = str.data(using: .utf8)
    let qr = CIFilter(name: "CIQRCodeGenerator", parameters: ["inputMessage": data, "inputCorrectionLevel": "M"])
    if let qr = qr {
        let sizeTransform = CGAffineTransform(scaleX: 10, y: 10)
        return qr.outputImage!.transformed(by: sizeTransform)
    }
    return nil
}

でCiImageをUIImageViewで表示する

override func viewDidLoad() {
    super.viewDidLoad()
    let qrCiImage = makeQRCode( str: "Sample" )
    guard let qr = qrCiImage else{
        return
    }
    let imageView = UIImageView(image: UIImage(ciImage: qrCiImage!))
    imageView.frame.size.width = 200
    imageView.frame.size.height = 200

    imageView.center.x = self.view.frame.width / 2
    imageView.center.y = self.view.frame.height / 2

    self.view.addSubview(imageView)
}

サンプルコード GitHub - letitride/MySwiftParts at MakeQR