QRBot
用于 iOS 8+ 的二维码扫描和生成库,采用 Swift 4 编写。
需求
iOS 8+
安装
QRBot 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中
pod 'QRBot'
使用
按照以下步骤使用 QRBot
- 扫描二维码的步骤
- 您需要在
Info.plist
中授予对相机的访问权限。
- 将
QRCodeScannerViewController
设置为您 ViewController 类的父类。
class ViewController: QRCodeScannerViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
- 遵循/实现
QRCodeScannerDelegate
协议,并实现其方法来完成您的任务。
class ViewController: QRCodeScannerViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
extension ViewController: QRCodeScannerDelegate{
func scanner(_ connection: AVCaptureConnection, didOutput data: String) {
print("DemoApp : Data from QR Code - \(data)")
// Perform your actions here with data from QRCode
}
}
(如果 AVCaptureConnection
可能显示任何错误,只需在 ViewController 中导入 AVFoundation
即可。)
import UIKit
import AVFoundation
import QRBot
class ViewController: QRCodeScannerViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
extension ViewController: QRCodeScannerDelegate{
func scanner(_ connection: AVCaptureConnection, didOutput data: String) {
print("DemoApp : Data from QR Code - \(data)")
// Perform your actions here with data from QRCode
}
}
- 将 ViewController 的
scannerDelegate
属性设置为self
。
class ViewController: QRCodeScannerViewController {
override func viewDidLoad() {
super.viewDidLoad()
scannerDelegate = self
}
}
- 设置完毕。现在请在代理方法中实现您的任务。
- 从自己的数据生成二维码的步骤
- 在 ViewController 中导入 QRBot。
import QRBot
- 按照以下示例调用
QRCode
类的generate()
方法
import UIKit
import QRBot
class YourViewController: UIViewController{
ovveride func viewDidLoad(){
super.viewDidLoad()
QRCode.generate(from: yourStringData,completion: { (image,error) in
if error == nil{
if let qrCodeImage = image{
// Set qrCodeImage to your ImageView
self.imageView.image = qrCodeImage // For example
}
}
})
}
}
-
下面的列表中给出了支持的方法。其用法与上面的示例相同。
- 从字符串数据生成简单的黑白二维码
QRCode.generate(from data: String, completion: @escaping (UIImage?,Error?) -> Void)
- 简单的黑白二维码,使用您的字符串数据生成,格式您所想要的
QRCode.generate(from data: String, imageFormat format: QRCodeImageFormat,completion: @escaping (UIImage?,Error?) -> Void)
在这里,
QRCodeImageFormat
是枚举类型,具有诸如.png
、.jpg
、.jpeg
、.gif
等值。- 不同图案颜色和背景颜色的二维码
QRCode.generate(from data: String, patternColor color: QRCodeColor,backgroundColor bgcolor: QRCodeColor, completion: @escaping (UIImage?,Error?) -> Void)
在这里,
QRCodeColor
是枚举类型,拥有来自苹果色彩库的所有颜色。- 不同图案颜色和背景颜色的二维码,按您所希望的图像格式生成
QRCode.generate(from data: String, patternColor color: QRCodeColor,backgroundColor bgcolor: QRCodeColor, imageFormat format: QRCodeImageFormat, completion: @escaping (UIImage?,Error?) -> Void)
示例
查看示例项目以了解更多信息。要运行示例项目,请先克隆仓库,然后从示例目录运行 pod install
。
作者
Hardik Trivedi,[email protected]
由