iPhoneアプリ公開への道 バーコードリーダ その2
Zbarを用いたバーコード読み取りの続きです。
前回から相当時間が空いてしまいましたが、肝さえ掴めば簡単です。
まずは、バーコード読み取り部のViewを定義します。
デザインはstoryboardで行っています。
画像の四角の枠で囲った部分がbarcordViewです。
おそらく通常では選択できないので、viewを貼り付けた後、
右上のCustomClassからZbarReaderViewを選択しておきます。
前回のZbarの設定が成功していたら、選択できるはずです。
それでは、コードの実装です。
まずはヘッダクラスです。
#import "ZBarSDK.h" #import "ZBarReaderController.h" @interface ATOBarReaderViewController : UIViewController<ZBarReaderViewDelegate> { IBOutlet ZBarReaderView *readerView; ZBarCameraSimulator *cameraSim; } @property (nonatomic,retain) NSString *jancode; /*@property (strong, nonatomic) IBOutlet ZBarReaderView* readerview;*/ @end
バーコードリーダを使うために
#import "ZBarSDK.h"
#import "ZBarReaderController.h"
は必須。
また、ZBarReaderViewDelegateを継承します。
readerViewはバーコード読み取り部のviewです。
続いて、実装部です。
一応
#import "ZBarSDK.h"のインポート宣言だけはしておいてください。
全てはお見せできないので、ポイントごとにご紹介します。
- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"back.png"]]; readerView.readerDelegate = self; readerView.zoom=1; ZBarImageScanner *scanner = readerView.scanner; [scanner setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0]; if ([[[UIDevice currentDevice] model] hasSuffix:@"Simulator"]) { cameraSim=[[ZBarCameraSimulator alloc] initWithViewController:self]; cameraSim.readerView=readerView; } [readerView start]; }
ここではロード時にスキャナの宣言と設定をしています。
またシミュレータでのデバッグ用の記述もあります。
設定完了後、startでバーコード読み取りを開始します。
次に、バーコードを読み取った場合の処理です。
/* * バーコード利用時の必須デリゲート */ - (void)readerView:(ZBarReaderView*)view didReadSymbols:(ZBarSymbolSet*)syms fromImage:(UIImage*)img { ZBarSymbol *symbol = nil; NSString *resultSymbol; for (symbol in syms) { break; } resultSymbol = symbol.data; }
didReadSymbolsが読み取り時に呼ばれます。
読み取り結果がsymsに入っているので、文字列として取り出します。
これでバーコードの読み取りは完了です。
次回は、取得したバーコードを使って、Webサービスによる値取得をしてみようと思います。
この記事へのコメントはこちら