• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift4.2 史上最完美的条码扫描库

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

GTMBarcodeScanner

Swift 实现的条码扫描组件库

说明

  • 支持设置不同风格的扫码动效(仿微信,仿支付宝)
  • 自动检测光线强度,开启闪光灯
  • 条码太小时候自动拉近镜头效果
  • 自定义扫码音效

例子

直接下载代码,里面Example里面有详细的使用实例代码

!

安装

Cocoapods方式

Install Cocoapods if need be.

$ gem install cocoapods

Add GTMBarcodeScanner in your Podfile.

use_frameworks!

pod 'GTMBarcodeScanner'

Then, run the following command.

$ pod install

常规方式

Copy GTMBarcodeScanner folder to your project. That’s it.

Note: Make sure that all files in GTMBarcodeScanner included in Compile Sources in Build Phases.

版本

Vesrion 1.0

This version requires Xcode 9.0 and Swift 4.

使用帮助

首先, import GTMBarcodeScanner.

import GTMBarcodeScanner

创建Scanner

let scanner = BarcodeScanner.create(view: self.view)

// 风格设置
scanner.makeStyle { (make) in
    let color = UIColor.init(red: 255/255, green: 157/255, blue: 0/255, alpha: 1)
    make.positionUpVal(44)
    make.anglePosition(ScanViewStyle.AnglePosition.inner)
    make.angleLineWeight(5)
    make.angleLineLength(18)
    make.isShowRetangleBorder(true)
    make.width(280)
    make.height(180)
    make.retangleLineWeight(1/UIScreen.main.scale)
    make.animateType(ScanViewStyle.Animation.lineMove)
    make.colorOfAngleLine(color)
    make.colorOfRetangleLine(color)
    let c = UIColor(red: 255/255, green: 157/255, blue: 0/255, alpha: 0.5)
    make.colorOutside(c)
    make.soundSource(forName: "VoiceSearchOn", andType: "wav")
}

// 配置
scanner.config { (make) in
    make.autoCloser(true)       // 自动拉近镜头
    make.caputureImage(true)    // 记录扫码的源图片
    make.printLog(true)         // 调试信息打印控制
}

// 设置代理
scanner.delegate = self

// 开始扫码
scanner.start()

代理对象

public protocol GTMBarcodeCoreDelegate: class {
    func barcodeRecognized(result: BarcodeResult)
    func lightnessChange(needFlashButton: Bool)
    func barcodeForPhoto(result: BarcodeResult?)
}

风格设置

public struct ScanViewStyle {

    /// 是否需要绘制扫码矩形框,默认YES
    public var isShowRetangle:Bool = true
    public var size = CGSize(width: 255, height: 255)
    public var positionUpVal: CGFloat = 44
    ///矩形框线条颜色,默认白色
    public var colorRetangleLine = UIColor.white
    ///4个角的颜色
    public var colorAngleLine = UIColor(red: 0.0, green: 167.0/255.0, blue: 231.0/255.0, alpha: 1.0)
    ///非识别区域颜色,默认 RGBA (0,0,0,0.5),范围(0--1)
    public var colorOutside = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.5)

    ///扫码区域的4个角类型
    public var anglePosition = AnglePosition.outer


    ///扫码区域4个角的宽度和高度
    public var angleW:CGFloat = 24.0
    public var angleH:CGFloat = 24.0
    ///扫码区域4个角的线条宽度,默认6,建议8到4之间
    public var angleLineWeight: CGFloat = 6
    public var retangleLineWeight: CGFloat = 1

    ///扫码动画效果: 线条或网格
    public var animateType = Animation.lineMove

    /// 动画效果的图像,如线条或网格的图像
    public var animateImage:UIImage?
    /// 动画 duration 值, 默认值 2.6
    public var animateDuration: TimeInterval = 2.6

    /// 扫描提示音资源文件
    public var soundSource: (name: String, type: String)?


    public init() { }
    
    public enum Animation {
        case lineMove
        case gridGrow
        case none
    }
    
    public enum AnglePosition {
        case inner
        case outer
        case on
    }
}

参考

本库参考了swifScan

参与开源

欢迎提交 issue 和 PR,大门永远向所有人敞开。

开源协议

本项目遵循个人协议开源,具体请查看根目录下的 LICENSE 文件。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
iOS开发Swift篇(02) NSThread线程相关简单说明发布时间:2022-07-14
下一篇:
[Swift]LeetCode598.范围求和II|RangeAdditionII发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap