SGQRCodeiOS 二维码处理工具
SGQRCode 是基于 Objective-C 的二维码综合工具,支持生成/扫描二维码,可从图片中识别二维码、进行相机/相册权限判断,或根据光线强弱开启关闭手电筒...
主要功能
- 生成二维码
- 扫描二维码
- 捕获内容缩放功能
- 图片中识别二维码
- 相机、相册权限判断
- 根据光线强弱开启关闭手电筒
- 扫描成功后界面间的逻辑跳转处理
- 扫描界面可高度自定义(满足所有主流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];
问题及解决方案
-
若在使用 CocoaPods 安装第三方时,出现 [!] Unable to find a specification for SGQRCode 提示时,打开终端先输入 pod repo remove master;执行完毕后再输入 pod setup 即可 (可能会等待一段时间)
-
CIDetector 类只能识别图片中的二维码,目前暂不支持识别图片中的条形码 解决方案
评论