条形码扫描的功能终于实现了,写此笔记以供自己复习之用,也能够帮助一些向我一样刚开始做IOS,刚开始熟悉二维码扫描功能的学习。做出来了,回头一看,其实很容易。非常感谢Oran的指点,是他让我能够快速的学会zbarsdk的使用方法。同时也教会了我怎么学习新知识的方法。
条形码、二维码扫描 sdk 已经封装好了实现的功能,我们要做的只是简单的几句代码就OK。
首先说一下原理,只有懂了原理才会很快的知道该去怎么做。
扫描原理:扫描的第一步是通过摄像头 获取图片,结果是得到一张图片,然后通过zbar的内部处理方法 来识别这张图片,并返回信息。就是这么简单。
在代码之前需要先引入几个类:
CoreMedia.framework(不好意思,这个给忘了)
以下是详细代码:
- ViewController.h
-
- #import <UIKit/UIKit.h>
- #import "ZBarSDK.h"
-
- @interface ViewController : UIViewController<ZBarReaderViewDelegate>
- @property (nonatomic, retain) IBOutlet ZBarReaderView *readerView;
- @end
-
- ViewController.m
-
- #import "ViewController.h"
- @implementation ViewController
- @synthesize readerView;
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- [ZBarReaderView class];
- readerView.readerDelegate = self;
- if(TARGET_IPHONE_SIMULATOR){
- ZBarCameraSimulator *cameraSim = [[ZBarCameraSimulator alloc]initWithViewController:self];
- cameraSim.readerView = readerView;
- }
- }
- -(void)readerView:(ZBarReaderView *)readerView didReadSymbols:(ZBarSymbolSet *)symbols fromImage:(UIImage *)image{
- for(ZBarSymbol *sym in symbols) {
- NSLog(@"%@",sym.data);
- break;
- }
-
- }
- -(void)viewDidAppear:(BOOL)animated{
- [readerView start];
- }
-
- - (void)didReceiveMemoryWarning
- {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
-
- @end
-
代码是完事了,但是还差一步
在xib里面增加一个view,class 里面填写 ZBarReaderView。
然后将 readView 和 File's Owner链接即可。
本笔记demo下载
另外一个demo下载(与本demo有不同之处)