123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- //
- // TestViewControllerSwift.swift
- // MCPlus
- //
- // Created by seo ha on 15/02/2019.
- // Copyright © 2019 KangSH. All rights reserved.
- //
- import Foundation
- import UIKit
- class BarcodeViewController: UIViewController {
-
- var reader:ZBarReaderViewController!
-
- var callBack:((String)->Void)?
-
- }
- extension BarcodeViewController{
- override func viewDidLoad() {
- super.viewDidLoad()
-
- self.scanAction()
- // Do any additional setup after loading the view.
- }
-
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
-
- func scanAction(){
- // ADD: present a barcode reader that scans from the camera feed
- reader = ZBarReaderViewController()
- reader.readerDelegate = self
- reader.supportedOrientationsMask = (1 << UIInterfaceOrientation.portraitUpsideDown.rawValue)
- reader.showsZBarControls = false
-
- let cameraOverlayView = UIView(frame: UIScreen.main.bounds)
- cameraOverlayView.backgroundColor = UIColor.clear
- let instructionLabel = UILabel(frame: UIScreen.main.bounds)
- instructionLabel.textColor = UIColor.gray
- instructionLabel.backgroundColor = UIColor.clear
- instructionLabel.font = UIFont(name: "Trebuchet MS", size: 24.0)
- instructionLabel.text = "취소"
-
- cameraOverlayView.addSubview(instructionLabel)
-
- instructionLabel.addTapGestureRecognizer(action: self.tapAction)
- reader.cameraOverlayView = cameraOverlayView
-
- let scanner = reader.scanner
-
- // TODO: (optional) additional reader configuration here
-
- // EXAMPLE: disable rarely used I2/5 to improve performance
- scanner?.setSymbology(ZBAR_I25, config: ZBAR_CFG_ENABLE, to: 0)
-
- // present and release the controller
-
- self.present(reader, animated: true, completion: nil)
- }
- }
- extension BarcodeViewController: ZBarReaderDelegate{
- func tapAction(){
- guard let reader = self.reader else {
- return
- }
-
- self.navigationController?.popViewController(animated: false)
- DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { [weak reader] in
- reader?.dismiss(animated: true, completion: nil)
- }
- }
-
- func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
- // ADD: get the decode results
-
- let key = UIImagePickerController.InfoKey.init(rawValue: ZBarReaderControllerResults)
- guard let results = info[key] as? NSFastEnumeration else{ return }
-
- var iterator = NSFastEnumerationIterator(results)
-
- var symbol:ZBarSymbol? = nil
- while let _symbol = iterator.next(){
- symbol = _symbol as? ZBarSymbol
- }
-
- if let data = symbol?.data{
- callBack?(data)
- }
-
-
- self.navigationController?.popViewController(animated: false)
- DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { [weak reader] in
- reader?.dismiss(animated: true, completion: nil)
- }
- }
- }
|