条形码扫描的功能终于实现了,写此笔记以供自己复习之用,也能够帮助一些向我一样刚开始做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有不同之处)