1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html
2.新建一个项目。
3.导入 ZBar的sdk。把ZBar SDK的目录拉入项目,然后选中copy选项
5.在appDelegate文件中加入 标记部分的代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; // Override point for customization after application launch. self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease]; self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; // force view class to load so it may be referenced directly from NIB [ZBarReaderView class]; return YES; }
注意此代码:
// force view class to load so it may be referenced directly from NIB [ZBarReaderView class];
// // ViewController.h // FootSafety // // Created by 泽宇 徐 on 12-6-12. // Copyright (c) 2012年 __MyCompanyName__. All rights reserved. // #import <UIKit/UIKit.h> #import "ZBarSDK.h" @interface ViewController : UIViewController<ZBarReaderViewDelegate> { IBOutlet UILabel * label ; ZBarReaderView *readerView; ZBarCameraSimulator *cameraSim; } @property(nonatomic,retain) UILabel * label ; @property (nonatomic, retain) IBOutlet ZBarReaderView *readerView; @end
7.在.m文件中要实现的主要方法是:
- (void) readerView: (ZBarReaderView*) view didReadSymbols: (ZBarSymbolSet*) syms fromImage: (UIImage*) img { // do something useful with results for(ZBarSymbol *sym in syms) { self.label.text = sym.data; break; } }
-(void) viewDidAppear:(BOOL)animated { // run the reader when the view is visible [readerView start]; }
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // the delegate receives decode results readerView.readerDelegate = self; // you can use this to support the simulator if(TARGET_IPHONE_SIMULATOR) { cameraSim = [[ZBarCameraSimulator alloc] initWithViewController: self]; cameraSim.readerView = readerView; } }
.m文件所有内容是:
// // ViewController.m // FootSafety // // Created by 泽宇 徐 on 12-6-12. // Copyright (c) 2012年 __MyCompanyName__. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController @synthesize label; @synthesize readerView; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // the delegate receives decode results readerView.readerDelegate = self; // you can use this to support the simulator if(TARGET_IPHONE_SIMULATOR) { cameraSim = [[ZBarCameraSimulator alloc] initWithViewController: self]; cameraSim.readerView = readerView; } } -(void) viewDidAppear:(BOOL)animated { // run the reader when the view is visible [readerView start]; } - (void) readerView: (ZBarReaderView*) view didReadSymbols: (ZBarSymbolSet*) syms fromImage: (UIImage*) img { // do something useful with results for(ZBarSymbol *sym in syms) { self.label.text = sym.data; break; } } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } -(void) dealloc { [self.readerView release]; [self.label release]; [super dealloc]; } @end
ZBarReaderView *readerView;