二维码功能的实现

ZBarSDK,一个比较优秀的开源项目,使用起来也很简单。

ZBarSDK是一个开源的SDK,可从这里下载到源码,该SDK实现了识别和读取各种条形码,包括EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 和 QR Code。

帮助文档:http://zbar.sourceforge.net/iphone/sdkdoc/index.html

Step1.使用ZBarSDK 需要导入的framework

  • 1.AVFoundation.framework
  • 2.CoreMedia.framework
  • 3.CoreVideo.framework
  • 4.QuartzCore.framework
  • 5.libiconv.dylib

Step2.在ViewController.h 导入#import "ZBarSDK.h"

Step3.在ViewController.h 继承 <ZBarReaderDelegate>协议

Step4.写代码:

ViewController.h

 #import <uikit uikit.h="">
 #import "ZBarSDK.h"

 @interface ViewController : UIViewController <zbarreaderdelegate> @property (weak, nonatomic) IBOutlet UIImageView *imageView;
 - (IBAction)scan:(id)sender;
 @property (weak, nonatomic) IBOutlet UILabel *label;

 @end</zbarreaderdelegate></uikit>

ViewController.m

 #import "ViewController.h"
 #import "ZBarSDK.h"

 @interface ViewController ()

 @end

 @implementation ViewController

 - (void)viewDidLoad
 {
     [super viewDidLoad];
     // Do any additional setup after loading the view, typically from a nib.
 }

 - (void)didReceiveMemoryWarning
 {
     [super didReceiveMemoryWarning];
     // Dispose of any resources that can be recreated.
 }

 - (IBAction)scan:(id)sender {

     ZBarReaderViewController * reader = [ZBarReaderViewController new];
     reader.readerDelegate = self;
     ZBarImageScanner * scanner = reader.scanner;
     [scanner setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:];

     reader.showsZBarControls = YES;

     [self presentViewController:reader animated:YES completion:nil];

 }

 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
 {
     id<nsfastenumeration> results = [info objectForKey:ZBarReaderControllerResults];
     ZBarSymbol * symbol;
     for(symbol in results)
         break;

     _imageView.image = [info objectForKey:UIImagePickerControllerOriginalImage];

     [picker dismissViewControllerAnimated:YES completion:nil];

     _label.text = symbol.data;
 }

 @end</nsfastenumeration>

在界面上放置一个UIImageView/UILabel/UIButton, UIImageView 用于显示扫描到的图像,UILabel用于显示扫描到的信息,UIButton 用于响应事件。

布局如图:

 

iOS开发——高级技术&二维码功能的实现的更多相关文章

  1. iOS开发——高级篇——二维码的生产和读取

    一.二维码的生成 从iOS7开始集成了二维码的生成和读取功能此前被广泛使用的zbarsdk目前不支持64位处理器 生成二维码的步骤:导入CoreImage框架通过滤镜CIFilter生成二维码 二维码 ...

  2. iOS开发-定制多样式二维码

    iOS开发-定制多样式二维码   二维码/条形码是按照某种特定的几何图形按一定规律在平台(一维/二维方向上)分布的黑白相间的图形纪录符号信息.使用若干个与二进制对应的几何形体来表示文字数值信息. 最常 ...

  3. iOS开发之生成二维码

    一.二维码的生成 从iOS7开始集成了二维码的生成和读取功能 此前被广泛使用的zbarsdk目前不支持64位处理器   1.二维码的内容(传统的条形码只能放数字) 纯文本 名片 URL   2.生成二 ...

  4. iOS开发——高级技术&摇一摇功能的实现

    摇一摇功能的实现 在AppStore中多样化功能越来越多的被使用了,所以今天就开始介绍一些iOS开发的比较实用,但是我们接触的比较少的功能,我们先从摇一摇功能开始 在 UIResponder中存在这么 ...

  5. iOS--iOS7摄像头识别二维码功能

    iOS–iOS7摄像头识别二维码功能 属性介绍: AVFoundation 框架基于以下几个类实现图像捕捉 ,通过这些类可以访问来自相机设备的原始数据并控制它的组件. AVCaptureDevice ...

  6. IOS开发 二维码功能的实现

    原帖地址:http://yul100887.blog.163.com/blog/static/20033613520121020611299/ 如今二维码随处可见,无论是实物商品还是各种礼券都少不了二 ...

  7. SNF开发平台WinForm-平板拍照及扫描二维码功能

    在我们做项目的时候,经常会有移动平板处理检验,审核等,方便移动办公.这时就需要在现场拍照上传问题,把当场问题进行上传,也有已经拍完照的图片或加工过的图片进行上传.还有在车间现场一体机,工控机 这种产物 ...

  8. 在iOS上实现二维码功能

    http://blog.csdn.net/abcmx/article/details/8011904 如今二维码随处可见,无论是实物商品还是各种礼券都少不了二维码的身影.而手机等移动设备又成为二维码的 ...

  9. Canvas与Image互相转换示例以及利用该技术实现微信长按自动识别二维码功能

    现在扫描二维码已经很普遍,微信扫一扫即可,但是如果二维码是在自己的手机上呢?那就要用到微信里的一个功能了,手指长按二维码,会弹出自动识别的选项,点确定就可以看到二维码的内容了.那么怎么通过前端实现这个 ...

随机推荐

  1. UVa 753 (二分图最大匹配) A Plug for UNIX

    题意: 有n个插座,m个设备以及k种转化器(每种转化器视为有无限个). 转换器A->B可以将A类型的插头转化成B类型的插头,所以可以插在B类型的插座上. 求最少剩多少不匹配的设备. 分析: 抛开 ...

  2. PHP简单下载

    ·php escapeshellcmd多字节编码漏洞 ·详细讲解PHP中缓存技术的应用 ·利用PHP V5开发多任务应用程序 ·详细解析 PHP 向 MySQL 发送数据过程 ·PHP实现静态发布的方 ...

  3. php简单实现MVC

    在PHP中使用MVC越来越流行了,特别是在一些开源的框架当中.MVC足以应对大多数的情况,但还有一些情况是其不太适合的,如比较简单的个人博客,对于只有几百篇文章量级的博客,使用MVC让人觉得有些太复杂 ...

  4. Jquery Table 的基本操作

    Jquery 操作 Html Table 是很方便的,这里对表格的基本操作进行一下简单的总结. 首先建立一个通用的表格css 和一个 表格Table: table { border-collapse: ...

  5. Today I Cooked the Sun Yat-Sen University [2007-09-25 12:37:39]

    Aha,yes,it is! And I paticipate in the school page of sysu...and cann't change my previous csu to sy ...

  6. 基于kryonet的RPC,使用kryo进行序列化

    Kryo是一个序列化框架. Kryonet是一个基于kryo的RPC框架,它实现了一套高效简洁的API,它通过NIO实现了TCP和UDP通讯,目前还不支持Http. 自己写了一个测试代码,运行了下,感 ...

  7. (原创)win7自带IIS7.5+php7.0.10安装教程(图)

    php在上周8月18日发布了PHP 7.0 (7.0.10)版本.详细下载页面http://windows.php.net/download/,根据自身电脑配置情况酌情下载版本.win7旗舰版,iis ...

  8. IE兼容性问题解决方案1--ajax请求不发送到后台

    相信很多小伙伴会遇到这种问题,用ajax做异步请求的时候,在IE浏览器下,并没有发送出去.但是相关程序确实执行了.为什么呢? 原来这是IE缓存方式的原因,所以呢,用下边的解决方案吧. 1.在请求的UR ...

  9. 自己常用的js方法

    $(function(){ tabview("#zcfw_list1"); tabview("#zcfw_list2"); tabview("#zcf ...

  10. 动态调用WebService 通用方法Moss 中 传统开发中都可用。

    WebService是啥大家都知道了,这里不做过多的解释.通常我们使用WebService的做法基本都是在我们的项目中添加Web引用的方式,首先找到WebService的地址,然后定义命名空间,这样会 ...