我已将 zxing 库集成到我的应用程序中,但我的部分要求是能够连续扫描 QR 码。
我已经通过关闭并重新呈现 zxing 小部件在一定程度上实现了这一点,但对我的客户来说似乎太慢了。
还有另一种方法可以重置小部件以再次开始扫描吗?

最佳答案

您将不得不篡改ZXing库,幸运的是这并不难。

在 ZXingWidgetController 中添加以下方法

在 ZXingWidgetController.h 中

- (void)reset;

在 ZXingWidgetController.m 中
- (void)reset
{
    decoding = YES;
    [overlayView setPoints:nil];
    wasCancelled = NO;
}

现在,在您的 ZXing 委托(delegate)中,编辑以下方法
- (void)zxingController:(ZXingWidgetController*)controller didScanResult:(NSString *)result
{
    //Handle your result as you want to

    [controller reset];
}

确保不要调用 [self dismissModalViewControllerAnimated:NO];,因为它会删除扫描 View 。

10-08 17:11