我已经在其他项目中成功使用过 ZBar,但是在将它实施到我的最新项目中时遇到了问题。它设置为选项卡式视图应用程序,其中第一个选项卡是扫描仪,第二个选项卡输出结果。为了解决 ZBar 使用全屏而不显示标签栏的问题,我创建了一个子视图(参见下面的代码)。但是,我也在我的其他 ZBar 项目上对此进行了测试,当您使用子视图时,ZBar 不会读取条形码然后存储编码数据。相反,动画扫描示踪剂只是弹跳。
有什么可以添加到我的代码中的东西,可以让我在子视图中使用 ZBar 吗?或者这是在选项卡式应用程序中使用 ZBar 的错误方式?
这是我的扫描方法:
- (void) presentReader
{
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMask(UIInterfaceOrientationPortrait);
reader.showsHelpOnFail = YES;
NSLog(@"reader presented");
ZBarImageScanner *scanner = reader.scanner;
// TODO: (optional) additional reader configuration here
// EXAMPLE: disable rarely used I2/5 to improve performance
[scanner setSymbology: 0
config: ZBAR_CFG_ENABLE
to: 0];
[scanner setSymbology: ZBAR_UPCA
config: ZBAR_CFG_ENABLE
to: 0];
[scanner setSymbology: ZBAR_DATABAR
config: ZBAR_CFG_ENABLE
to: 1];
[scanner setSymbology: ZBAR_DATABAR_EXP
config: ZBAR_CFG_ENABLE
to: 1];
reader.showsCameraControls = NO; // for UIImagePickerController
reader.showsZBarControls = NO;
//reader.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;
reader.wantsFullScreenLayout = NO;
reader.videoQuality = UIImagePickerControllerQualityTypeIFrame1280x720;
//Subview
[self.view addSubview:reader.view];
}