我正在将 ZBarSDK 与 iPhone 项目一起使用。
我使用 ZBar 作为嵌入式阅读器。基本上在 Interface Builder 中连接一个 UIView。将类更改为ZBarReaderView
并实现委托方法-(void)readerView: (ZBarReaderView*) view didReadSymbols: (ZBarSymbolSet*) syms fromImage: (UIImage*) img
。
这在大多数情况下都可以正常工作。然而,有些条码显然无法正确扫描。第一个块被解释错误。我得到类似5008914...
下一次得到的东西7001814...
,然后我得到正确的4001954...
我回到 SDK 中的“EmbedReader”示例,查看是否可以找到任何可能需要进行的调整,并发现它也产生了相同的错误。如果我查看示例“ReaderSample”,则不会发生错误,但是它使用ZBarReaderViewController
.
然后我尝试在我的方法中将ZBAR_CFG_X_DENSITY
and ZBAR_CFG_Y_DENSITY
both 更改为 3 viewWillAppear
,但这没有影响。
ZBarReaderViewController
和的扫描机制有什么区别ZBarReaderView
?我能做些什么来抑制错误的结果?
谢谢
这里有一些相关的代码片段。
在.h
@interface ScanVC:UIViewController<ZBarReaderViewDelegate>
{
IBOutlet ZBarReaderView *readerView;
...
}
...
@property (nonatomic, retain) IBOutlet ZBarReaderView *readerView;
...
在他们中
@synthesize readerView;
...
-(void) viewDidAppear: (BOOL) animated
{
[[readerView scanner] setSymbology:0 config:ZBAR_CFG_X_DENSITY to: 3];
[[readerView scanner] setSymbology:0 config:ZBAR_CFG_Y_DENSITY to: 3];
[[readerView scanner] setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0];
[readerView start];
}
...
- (void) readerView: (ZBarReaderView*) view didReadSymbols: (ZBarSymbolSet*) syms fromImage: (UIImage*) img
{
for(ZBarSymbol *sym in syms) {
...
}
...
}
...
-(void)viewDidLoad
{
[readerView setDelegate: self];
}