0

プロジェクトの1つでZBariPhoneSDKを使用しています(iOS SDK 5.1、XCode 4.4.1、およびiOS 5.5.1を実行しているデバイス)。SDk自体で提供されている例の組み込みスキャナーを使用しています。

今私が直面している問題は、バーコードを正常にスキャンして別のビューコントローラーに移動することです(ナビゲーションコントローラーを使用)。私が戻ってきたとき(2番目のビューコントローラーをポップ)、スキャナー、つまりZBarReaderViewは後続のバーコードをスキャンしません。実際、オーバーレイにはスキャンされたバーコードのぼやけた画像が表示され、正しくスキャンできません。

これが私が実装したすべてです。BarScannerViewController.h私は宣言しました

ZBarReaderView*             readerView;

プロパティ付き

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

これで、これはxibのビューの1つに接続されます。

最後に、必要なメソッドを次のように設定します-

- (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

これが、スキャナーを起動する(そして無限に再起動する)ために使用するコードです。興味深いことに、私はスキャンを停止することはありませんが、非常に確実に機能することに注意してください。

- (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 に答える
0

プロジェクトでSDKを再構成することで、ブラーの問題を解決できました。ZBarSDkで提供されている組み込みスキャナーの例に従いました。以前に構成したときに、いくつかの重要な設定を見逃した可能性があると思います。

于 2012-10-20T12:02:02.107 に答える