加载中…
个人资料
yexiaonai
yexiaonai
  • 博客等级:
  • 博客积分:0
  • 博客访问:65,687
  • 关注人气:15
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

【转】 使用ZBar来读取条形码和二维码的方法

(2013-02-02 08:37:44)
标签:

ios

iphone

zbar

it

分类: iOS
原文地址:http://blog.csdn.net/remote_roamer/article/details/7657845

1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html


2.新建一个项目。

3.导入 ZBar的sdk。把ZBar SDK的目录拉入项目,然后选中copy选项

4.在项目文件的target中加入 以下framework

5.在appDelegate文件中加入 标记部分的代码

  1. (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  2.  
  3.     self.window [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  
  4.     // Override point for customization after application launch.  
  5.     self.viewController [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];  
  6.     self.window.rootViewController self.viewController;  
  7.     [self.window makeKeyAndVisible];  
  8.       
  9.       
  10.     // force view class to load so it may be referenced directly from NIB  
  11.     [ZBarReaderView class];  
  12.       
  13.       
  14.     return YES;  
  15.  

 

注意此代码:

  1. // force view class to load so it may be referenced directly from NIB  
  2.  [ZBarReaderView class];  


6.在.h文件中加入   ZBarReaderViewDelegate的实现,代码如下:
  1. //  
  2. //  ViewController.h  
  3. //  FootSafety  
  4. //  
  5. //  Created by 泽宇 徐 on 12-6-12.  
  6. //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.  
  7. //  
  8.   
  9. #import   
  10. #import "ZBarSDK.h"  
  11.   
  12. @interface ViewController UIViewController  
  13.  
  14.     IBOutlet UILabel  label  
  15.     ZBarReaderView *readerView;  
  16.     ZBarCameraSimulator *cameraSim;  
  17.  
  18.   
  19. @property(nonatomic,retain) UILabel label  
  20. @property (nonatomic, retain) IBOutlet ZBarReaderView *readerView;  
  21.   
  22.   
  23. @end  

7.在.m文件中要实现的主要方法是:

 

[html] view plaincopy
  1. (void) readerView: (ZBarReaderView*) view  
  2.      didReadSymbols: (ZBarSymbolSet*) syms  
  3.           fromImage: (UIImage*) img  
  4.  
  5.     // do something useful with results  
  6.     for(ZBarSymbol *sym in syms)  
  7.         self.label.text sym.data;  
  8.         break;  
  9.      
  10.  

这里是功能是读取照片信息,把条码放如label显示

 


 

[html] view plaincopy
  1. -(void) viewDidAppear:(BOOL)animated  
  2.  
  3.     // run the reader when the view is visible  
  4.     [readerView start];  
  5.  

这个是在显示视图的时候,启动摄像头,开始扫描

 


 

[html] view plaincopy
  1. (void)viewDidLoad  
  2.  
  3.     [super viewDidLoad];  
  4.     // Do any additional setup after loading the view, typically from nib.  
  5.       
  6.     // the delegate receives decode results  
  7.     readerView.readerDelegate self 
  8.       
  9.     // you can use this to support the simulator  
  10.     if(TARGET_IPHONE_SIMULATOR)  
  11.         cameraSim [[ZBarCameraSimulator alloc]  
  12.                      initWithViewController: self];  
  13.         cameraSim.readerView readerView 
  14.      
  15.   
  16.  

在初始化的时候,设置托管。

 


.m文件所有内容是:

[html] view plaincopy
  1. //  
  2. //  ViewController.m  
  3. //  FootSafety  
  4. //  
  5. //  Created by 泽宇 徐 on 12-6-12.  
  6. //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.  
  7. //  
  8.   
  9. #import "ViewController.h"  
  10.   
  11. @interface ViewController ()  
  12.   
  13. @end  
  14.   
  15. @implementation ViewController  
  16. @synthesize label;  
  17. @synthesize readerView;  
  18.   
  19. (void)viewDidLoad  
  20.  
  21.     [super viewDidLoad];  
  22.     // Do any additional setup after loading the view, typically from nib.  
  23.       
  24.     // the delegate receives decode results  
  25.     readerView.readerDelegate self 
  26.       
  27.     // you can use this to support the simulator  
  28.     if(TARGET_IPHONE_SIMULATOR)  
  29.         cameraSim [[ZBarCameraSimulator alloc]  
  30.                      initWithViewController: self];  
  31.         cameraSim.readerView readerView 
  32.      
  33.   
  34.  
  35.   
  36. -(void) viewDidAppear:(BOOL)animated  
  37.  
  38.     // run the reader when the view is visible  
  39.     [readerView start];  
  40.  
  41.   
  42.   
  43. (void) readerView: (ZBarReaderView*) view  
  44.      didReadSymbols: (ZBarSymbolSet*) syms  
  45.           fromImage: (UIImage*) img  
  46.  
  47.     // do something useful with results  
  48.     for(ZBarSymbol *sym in syms)  
  49.         self.label.text sym.data;  
  50.         break;  
  51.      
  52.  
  53.   
  54.   
  55.   
  56. (void)viewDidUnload  
  57.  
  58.     [super viewDidUnload];  
  59.     // Release any retained subviews of the main view.  
  60.  
  61.   
  62. (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
  63.  
  64.     return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  
  65.  
  66.   
  67. -(void) dealloc  
  68.  
  69.     [self.readerView release];  
  70.     [self.label release];  
  71.     [super dealloc];  
  72.  
  73.   
  74. @end  

在ViewController.xib文件中 增加一个view,并且修改view的类是ZBarReaderView ,并且指向 .h文件中定义的 
  1. ZBarReaderView *readerView;  

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有