MercariQRScanner 1.9.0

MercariQRScanner 1.9.0

hitsubunnu 维护。



  • 作者
  • hitsubunnu

QRScanner

一个简单的 iOS 二维码扫描框架。提供类似 ios13+ 的扫描效果。用 Swift 编写。

iOS 13.0+ 在 iOS 10.0+ 中使用 QRScanner

“QR Code”是 DENSO WAVE INCORPORATED 的注册商标

特性

  • 类似于 iOS 13.0+ 的设计
  • 简单使用 示例
  • 支持 iOS 10.0+

开发需求

  • iOS 10.0+
  • Swift: 5.4.2
  • Xcode 版本: 13.0

安装

CocoaPods 是安装 QRScanner 的推荐方法。

Pod方法

  • 只需将以下行添加到您的Podfile
  platform :ios, '10.0'
  pod 'MercariQRScanner'
  • 运行命令
  pod install
  • 在您的源文件中写下导入语句
  import MercariQRScanner

Carthage方法

  • 移动您的项目目录并创建Cartfile
> touch Cartfile
  • 将以下行添加到Cartfile
github "mercari/QRScanner"
  • 创建框架
> carthage update --platform iOS
  • 在Xcode中,转到“通用 > 编译阶段 > 链接框架和库”
  • 将框架添加到项目中
  • 添加一个新的运行脚本并输入以下代码
/usr/local/bin/carthage copy-frameworks
  • 在输入文件上点击"+"并添加框架路径
$(SRCROOT)/Carthage/Build/iOS/QRScanner.framework
  • 在您的源文件中写下导入语句
import QRScanner

使用说明

参阅QRScannerSample

Privacy - Camera Usage Description添加到Info.plist文件

使用基础

import QRScanner
// If use the Pod way, please import MercariQRScanner

final class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        let qrScannerView = QRScannerView(frame: view.bounds)
        view.addSubview(qrScannerView)
        qrScannerView.configure(delegate: self)
        qrScannerView.startRunning()
    }
}

extension ViewController: QRScannerViewDelegate {
    func qrScannerView(_ qrScannerView: QRScannerView, didFailure error: QRScannerError) {
        print(error)
    }

    func qrScannerView(_ qrScannerView: QRScannerView, didSuccess code: String) {
        print(code)
    }
}

定制

源代码方式

override func viewDidLoad() {
        super.viewDidLoad()

        let qrScannerView = QRScannerView(frame: view.bounds)

        // Customize focusImage, focusImagePadding, animationDuration
        qrScannerView.focusImage = UIImage(named: "scan_qr_focus")
        qrScannerView.focusImagePadding = 8.0
        qrScannerView.animationDuration = 0.5

        qrScannerView.configure(delegate: self)
        view.addSubview(qrScannerView)
        qrScannerView.startRunning()
}

界面构建器方式

设置自定义类 自定义

添加FlashButton

FlashButtonSample

final class ViewController: UIViewController {

    ...

    @IBOutlet var flashButton: FlashButton!

    @IBAction func tapFlashButton(_ sender: UIButton) {
        qrScannerView.setTorchActive(isOn: !sender.isSelected)
    }
}

extension ViewController: QRScannerViewDelegate {

    ...

    func qrScannerView(_ qrScannerView: QRScannerView, didChangeTorchActive isOn: Bool) {
        flashButton.isSelected = isOn
    }
}

添加模糊效果

源代码方式

     qrScannerView.configure(delegate: self, input: .init(isBlurEffectEnabled: true))

界面构建器方式

自定义

提交者

贡献

在提交贡献至 Mercari 之前,请仔细阅读 CLA 协议。在任何情况下,通过提交贡献,您被认为接受并同意受 CLA 条款和条件的约束。

https://www.mercari.com/cla/

许可

版权所有 2019 Mercari, Inc.

许可协议为 MIT 协议。