SYQRCodeSwift 1.2.0

SYQRCodeSwift 1.2.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2017年1月
SwiftSwift版本3.0
SPM支持SPM

reesun维护。



  • 作者:reesun
  • reesun1130/SYQRCodeDemoSwift

SYQRCodeDemoSwift

介绍

SY QRCode Demo Swift,使用Swift实现二维码扫描,原生API,iOS8+

版本 1.0.5

  • Objective-C实现

  • 效果:
    • 微信风格二维码扫描

  • 功能:
    • 扫描二维码
    • 生成二维码
    • 读取相册中的二维码图片

示例

    @IBAction func onclickBtnScan(_ btn : UIButton!) {
        let vcQRCode = SYQRCodeReader()
        vcQRCode.setReaderDelegate(self)
        self.present(vcQRCode, animated: true, completion: nil)
    }

    @IBAction func onClickBtnGenerate(_ btn : UIButton!) {
        let imageQRCode = generateQRCodeImage("sunyang", strLogo: "qrcodelogo")
        self.logo.image = imageQRCode
    }

    @IBAction func onClickBtnRead(_ btn : UIButton!) {
        if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
            let imagePicker = UIImagePickerController()
            imagePicker.delegate = self
            imagePicker.sourceType = .photoLibrary
            self.present(imagePicker, animated: true, completion: nil)
        }
    }

    //代理
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        let imagePicked = info[UIImagePickerControllerOriginalImage] as! UIImage

        //展示读取到的图片信息
        alertInfo(readQRCodeImage(imagePicked), msg: nil)

        picker.dismiss(animated: true, completion: nil)
    }

    //reader delegate
    func reader(reader: SYQRCodeReader!, didReadModel: SYQRCodeModel!, success: Bool) {
        self.mQRCode = didReadModel
        SYLog(self.mQRCode.describe(), classname: self)
        reader?.dismiss(animated: true, completion: { () -> Void in
            alertInfo(nil, msg: self.mQRCode.describe())
        })
    }

    func readerDidReadFail(reader: SYQRCodeReader!) {
        SYLog("readFailBlock", classname: self)
    }

UI

intro png

intro png

安装

手动安装

  1. 直接复制 SYQRCodeSwift/ 目录到你的project
  2. 添加frameworks:FoundationUIKitAVFoundation

用法

Swift

  1. 初始化:
    • let vcQRCode = SYQRCodeReader()
  2. 设置代理:
    • vcQRCode.setReaderDelegate(self)
  3. 打开扫描界面:
    • self.present(vcQRCode, animated: true, completion: nil)
  4. 实现代理(SYQRCodeReaderSwiftDelegate):
    • reader(reader : SYQRCodeReader!, didReadModel : SYQRCodeModel!, success : Bool)
    • readerDidReadFail(reader : SYQRCodeReader!)

环境

  • iOS 8+
  • Swift
  • 支持 armv7/armv7s/arm64

其他

作者

许可证

本代码分发受 MIT 许可证条款和条件的约束。

贡献指南

请注意! 如果你正在修复你发现的bug,请同时添加一个单元测试,让我知道在合并前如何精确地重现该bug。