Узнайте, как легко создавать 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 | |
} |
Чтобы отобразить 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-кодов.
Спасибо за внимание. Надеюсь, эта информация окажется для вас полезной. Не стесняйтесь поделиться им с другими :)