123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- //
- // 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)?
-
- @IBOutlet weak var cameraOverlayView: UIView!
-
- @IBOutlet weak var closeButton: UIImageView!{
- didSet{
- closeButton.addTapGestureRecognizer(action: self.tapAction)
- }
- }
-
-
- }
- 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)
-
- 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)
- reader.view.frame = self.cameraOverlayView.bounds
- self.cameraOverlayView.addSubview(reader.view)
- self.addChild(self.reader)
- }
- }
- 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)
- }
- }
- }
|