Узнайте, как легко создавать QR-коды в Swift.

QR-коды в двух словах

QR-коды - это штрих-коды, которые могут хранить некоторую информацию. Вы можете сканировать QR-коды с помощью камеры смартфона. Обычно QR-коды используют для открытия определенного веб-сайта с помощью QR-сканера.

Как создать QR-код

Сгенерировать QR-коды для вашего приложения iOS очень просто: Swift поставляется со встроенным генератором QR-кодов. В Swift QR-код - это не что иное, как обычный UIImage, в котором отображается QR-код.

Вот весь код, необходимый для создания изображения QR-кода:

func generateQRCode(from string: String) -> UIImage? {
let data = string.data(using: String.Encoding.ascii)
if let QRFilter = CIFilter(name: "CIQRCodeGenerator") {
QRFilter.setValue(data, forKey: "inputMessage")
guard let QRImage = QRFilter.outputImage else { return nil }
return UIImage(ciImage: QRImage)
}
return nil
}
view raw QRCode.swift hosted with ❤ by GitHub

Чтобы отобразить QR-код (например, UIImage), вы можете добавить изображение в свою раскадровку:

И подключите представление изображения к контроллеру представления:

Затем в ViewController.swift, например в viewDidLoad методе все, что вам нужно сделать, это:

let QRCodeImage = generateQRCode(from: "Hello, world!")
self.QRView.image = QRCodeImage

Проблемы с размером?

Если у вас возникли проблемы с размером QR-кода, вы можете изменить приведенный выше код, чтобы увеличить (или уменьшить) изображение QR-кода.

Для вашего удобства вот пример того, как увеличить QR-изображение на 10,0 (путем жесткого кодирования коэффициентов масштабирования) с помощью CGAffineTransform:

func generateQRCode(from string: String) -> UIImage? {
let data = string.data(using: String.Encoding.ascii)
if let QRFilter = CIFilter(name: "CIQRCodeGenerator") {
QRFilter.setValue(data, forKey: "inputMessage")
guard let QRImage = QRFilter.outputImage else { return nil }
let scaleUp = CGAffineTransform(scaleX: 10.0, y: 10.0)
let scaledQR = QRImage.transformed(by: scaleUp)
return UIImage(ciImage: scaledQR)
}
return nil
}

Заключение

QR-коды можно использовать для хранения некоторых данных, например ссылка на сайт. QR-код можно прочитать с помощью приложения для сканирования QR-кода.

В Swift вы можете генерировать QR-коды с помощью встроенного генератора QR-кодов.

Спасибо за внимание. Надеюсь, эта информация окажется для вас полезной. Не стесняйтесь поделиться им с другими :)

Ресурсы