0

我在我的一个项目(iOS SDK 5.1、XCode 4.4.1 和运行 iOS 5.5.1 的设备)中使用 ZBar iPhone SDK。我正在使用 SDK 本身提供的示例中的嵌入式扫描仪。

现在我面临的问题是我成功扫描了条形码并移动到另一个视图控制器(使用导航控制器)。当我回来(弹出第二个视图控制器)扫描仪即ZBarReaderView不扫描后续条形码时,实际上覆盖显示扫描条形码的模糊图像并且永远无法正确扫描它。

这就是我所实施的。在BarScannerViewController.h我已经宣布

ZBarReaderView*             readerView;

有财产

@property (nonatomic , retain)    IBOutlet UIImageView* imgvScannedBarCode;

现在这已连接到 xib 中的视图之一。

最后我使用设置所需的方法如下 -

- (void)viewDidLoad {
    [super viewDidLoad];

    // the delegate receives decode results
    readerView.readerDelegate = self;
    [readerView start];
}


- (void) viewDidAppear: (BOOL) animated {
    // run the reader when the view is visible
    [activityIndicatorScanning startAnimating];
    [readerView start];
}

- (void) viewWillDisappear: (BOOL) animated {
    [activityIndicatorScanning stopAnimating];
    [readerView stop];
}

完成所有这些设置后,当我第一次扫描任何条码时说 EAN123

- (void) readerView: (ZBarReaderView*) view
     didReadSymbols: (ZBarSymbolSet*) syms
          fromImage: (UIImage*) img
{
    // do something useful with results
    ZBarSymbol *symbol = nil;
    for(symbol in syms) {
        barCodeFound = YES;
        break;
    }
    // EXAMPLE: do something useful with the barcode data
    NSLog(@"%@",symbol.data);
}

但是在随后的运行中(在我推送视图并再次返回此屏幕后)我的视图变得模糊。

在此处输入图像描述

在此处输入图像描述

我在这里错过了什么吗?任何帮助/建议/评论都会有所帮助。

4

2 回答 2

0

我可以通过在我的项目中重新配置 SDK 来解决模糊问题。我按照 ZBarSDk 上提供的嵌入式扫描仪示例进行操作。我想我可能在之前配置时错过了一些基本设置。

于 2012-10-20T12:02:02.107 回答
0

这是我用来启动(并无休止地重新启动)扫描仪的代码。有趣的是,我注意到我从不停止扫描,但它的工作非常可靠。

- (void) startScan
{
    ZBarReaderViewController *reader = [ZBarReaderViewController new];

    reader.readerDelegate = self;

    ZBarImageScanner *scanner = reader.scanner;

    [scanner setSymbology: ZBAR_I25
                   config: ZBAR_CFG_ENABLE
                   to: 0];

    // present and release the controller
    [self presentViewController:reader animated:YES completion:nil]; // Modal
    [reader release];
}
于 2012-09-04T10:26:13.173 回答