首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZBar SDK (iOS):使用子视图时不扫描Zbar

ZBar SDK (iOS):使用子视图时不扫描Zbar
EN

Stack Overflow用户
提问于 2013-04-05 03:17:53
回答 2查看 1.8K关注 0票数 1

我已经在其他项目中成功地使用了ZBar,但在我的最新项目中实现它时遇到了问题。它被设置为选项卡式视图应用程序,其中第一个选项卡是扫描仪,第二个选项卡输出结果。为了解决ZBar使用全屏而不显示选项卡栏的问题,我创建了一个子视图(参见下面的代码)。但是,我也在我的其他ZBar项目上测试过这一点,当您使用子视图时,ZBar不会读取条形码,然后存储编码的数据。取而代之的是,动画扫描跟踪器只是到处弹跳。

有没有什么东西可以添加到我的代码中,让我可以在子视图中使用ZBar?或者这是在选项卡式应用程序中使用ZBar的错误方式?

下面是我的扫描方法:

代码语言:javascript
复制
- (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];

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-11 02:48:10

这适用于我的UITabBarController -(图像) http://db.tt/cgVxDd0x

我认为你的问题是你没有设置reader.scanCrop。

代码语言:javascript
复制
-(void) viewDidAppear:(BOOL)animated {
    self.reader = [ZBarReaderViewController new];
    self.reader.readerDelegate = self;
    self.reader.enableCache = NO;
    self.reader.showsZBarControls = NO;
    self.reader.wantsFullScreenLayout = NO;
    self.reader.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;
    self.reader.supportedOrientationsMask = ZBarOrientationMask(UIInterfaceOrientationPortrait);

    ZBarImageScanner *scanner = self.reader.scanner;

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

    self.reader.scanCrop = CGRectMake(0, 0, 1, 1);
    [self.view addSubview:self.reader.view];

}

- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info {
    id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];
    ZBarSymbol *symbol = nil;
    for(symbol in results)
        break;

    NSLog(@"%@",symbol.data);

}
票数 3
EN

Stack Overflow用户

发布于 2013-09-16 18:06:23

我也面临着这样的问题。但是,一旦我把这个阅读器对象变成全局对象而不是局部对象,这就很好用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15819853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档