條碼掃描的功能終於實現了,寫此筆記以供自己複習之用,也能夠協助一些向我一樣剛開始做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;@endViewController.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有不同之處)