SGQRCode
版本 | UIKit | 用途 |
---|---|---|
3.5x | iOS 9.0+ | 块 |
4.x | iOS 11.0+ | 委托 |
-
QQ群:825339547
主要功能
生成二维码
扫描二维码
捕获内容缩放功能
图片中识别二维码
相机、相册权限判断
根据光线强弱开启关闭手电筒
扫描成功后界面间的逻辑跳转处理
扫描界面可高度自定义(满足所有主流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];
委托方法
// 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 类只能识别图片中的二维码,目前暂不支持识别图片中的条形码。[解决方案](https://juejin.cn/post/6844903910428114952)
更新说明
-
2022-07-16 :v4.0.0 版本重构:Delegate 取代 Block,新增手动对焦功能,优化拓展扫描视图,更多内容请在releases 中查看
-
2022-07-16 :v4.1.0 优化SGScanView内部代码逻辑,修复无扫描线时,导致程序崩溃的问题
授权
SGQRCode 在 Apache License 2.0 授权下发布。有关详细信息,请参阅 LICENSE。