我已将 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 。