# SMFScanQRCode **Repository Path**: FCComp/SMFScanQRCode ## Basic Information - **Project Name**: SMFScanQRCode - **Description**: 二维码扫描 - **Primary Language**: Objective-C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-09-20 - **Last Updated**: 2022-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SMFScanQRCode - [iOS扫码封装](#iOS扫码封装) - [DIY](#设置参数自定义效果) - [模仿其他app](#模仿其他app(通过设置参数即可完成)) - [DIY参数介绍](#DIY参数介绍) ### iOS扫码封装 - 扫码识别封装: 系统API(AVFoundation) - 扫码界面效果封装 - 二维码扫描 - 根据图片进行二维码扫描 - 生成二维码和条形码 ### 设置参数自定义效果 - 扫码框周围区域背景色可设置 - 扫码框颜色可也设置 - 扫码框4个角的颜色可设置、大小可设置 - 动画效果选择: 线条上下移动、网格形式移动、中间线条不移动(一般扫码条形码的效果) ### 模仿其他app(通过设置参数即可完成) - 模仿QQ扫码界面 - 支付宝扫码框效果 - 微信扫码框效果 ### 安装 ``` pod 'SMFScanQRCode' ``` ### 扫码框样式 ``` - (SMFScanQRCodeViewStyle*)DIY { //设置扫码区域参数 SMFScanQRCodeViewStyle *style = [[SMFScanQRCodeViewStyle alloc]init]; //扫码框中心位置与View中心位置上移偏移像素(一般扫码框在视图中心位置上方一点) style.centerUpOffset = 44; //扫码框周围4个角的类型设置为在框的上面,可自行修改查看效果 style.photoframeAngleStyle = SMFScanQRCodeViewPhotoframeAngleStyle_On; //扫码框周围4个角绘制线段宽度 style.photoframeLineW = 6; //扫码框周围4个角水平长度 style.photoframeAngleW = 24; //扫码框周围4个角垂直高度 style.photoframeAngleH = 24; //动画类型:网格形式,模仿支付宝 style.anmiationStyle = SMFScanQRCodeViewAnimationStyle_NetGrid; //动画图片:网格图片 style.animationImage = [UIImage imageNamed:@"SMFScanQRCode.bundle/qrcode_scan_part_net"];; //扫码框周围4个角的颜色 style.colorAngle = [UIColor colorWithRed:65./255. green:174./255. blue:57./255. alpha:1.0]; //是否显示扫码框 style.isNeedShowRetangle = YES; //扫码框颜色 style.colorRetangleLine = [UIColor colorWithRed:247/255. green:202./255. blue:15./255. alpha:1.0]; //非扫码框区域颜色(扫码框周围颜色,一般颜色略暗) //必须通过[UIColor colorWithRed: green: blue: alpha:]来创建,内部需要解析成RGBA style.notRecoginitonArea = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.6]; return style; } ``` ### 使用 快速使用 ``` UIImage *imgLine = [UIImage imageNamed:@"SMFScanQRCode.bundle/qrcode_scan_light_green"]; _qrView = [[SMFScanQRCodeMainView alloc] initWithFrame:CGRectMake(0, 200, 414, 400) colorAngle:UIColor.cyanColor animationImage:imgLine]; _qrView.cameraInvokeMsg = @"相机启动中"; _qrView.delegate = self; [self.view addSubview:_qrView]; ``` 扫码结果处理,可以通过实现委托方法 scanResultWithArray 或者使用自定义style进行初始化 ``` /** @brief 初始化 @param frame 位置大小 @param style 类型 @return instancetype */ - (id)initWithFrame:(CGRect)frame style:(SMFScanQRCodeViewStyle*)style; ``` 根据图片进行二维码扫描 ``` //使用图片扫描 - (void)startScanWithImage:(UIImage *)image; ``` SMFScanQRCodeNative生成二维码图片 ``` /** 生成QR二维码 @param text 字符串 @param size 二维码大小 @return 返回二维码图像 */ + (UIImage*)createQRWithString:(NSString*)text QRSize:(CGSize)size; /** 生成QR二维码 @param text 字符串 @param size 大小 @param qrColor 二维码前景色 @param bkColor 二维码背景色 @return 二维码图像 */ + (UIImage*)createQRWithString:(NSString*)text QRSize:(CGSize)size QRColor:(UIColor*)qrColor bkColor:(UIColor*)bkColor; /** 生成条形码 @param text 字符串 @param size 大小 @return 返回条码图像 */ + (UIImage*)createBarCodeWithString:(NSString*)text QRSize:(CGSize)size; ```