kingsic / SGQRCode

The easy to use bar code and QR code scan library for iOS【支持二维码生成、读取图片中二维码、条形码和二维码扫描】
Apache License 2.0
1.68k stars 368 forks source link
barcode qrcode

SGQRCode

Version UIKit Use
3.5x iOS 9.0+ Block
4.x iOS 11.0+ Delegate

主要功能

生成二维码

扫描二维码

捕获内容缩放功能

图片中识别二维码

相机、相册权限判断

根据光线强弱开启关闭手电筒

扫描成功后界面间的逻辑跳转处理

扫描界面可高度自定义(满足所有主流app)

主要类说明

类名 说明
SGScanCode 扫描二维码
SGScanViewConfigure 扫描视图配置
SGScanView 扫描视图
SGPermission 相册、相机权限管理
SGTorch 手电筒管理
SGQRCodeLog 调试日志

SGQRCode 集成流程

手动集成

添加 SGQRCode 文件夹到工程中

通过 CocoaPods 集成

pod 'SGQRCode', '~> 4.1.0'

Info.plist 添加以下字段

NSCameraUsageDescription (相机权限访问)

NSPhotoLibraryUsageDescription (相册权限访问)

引用头文件

#import <SGQRCode/SGQRCode.h>

扫描二维码相关代码

// 创建二维码扫描类
scanCode = [SGScanCode scanCode];

// 预览视图,必须设置
scanCode.preview = self.view;

// 遵循 SGScanCodeDelegate
scanCode.delegate = self;

// 遵循 SGScanCodeSampleBufferDelegate
scanCode.sampleBufferDelegate = self;

// 开启扫描
[scanCode startRunning];

// 结束扫描
[scanCode stopRunning];

Delegate 方法

// SGScanCodeDelegate
- (void)scanCode:(SGScanCode *)scanCode result:(NSString *)result {
    <#code#>
}

// SGScanCodeSampleBufferDelegate
- (void)scanCode:(SGScanCode *)scanCode brightness:(CGFloat)brightness {
    <#code#>
}

图片中识别二维码方法

[scanCode readQRCode:image completion:^(NSString *result) {
    <#code#>
}];

生成二维码相关方法

// 普通二维码生成方法
[SGGenerateQRCode generateQRCodeWithData:data size:size];

// 带 logo 的二维码生成方法
[SGGenerateQRCode generateQRCodeWithData:data size:size logoImage:logoImage ratio:ratio];

效果图

问题及解决方案

更新说明

License

SGQRCode is released under the Apache License 2.0. See LICENSE for details.