iOS:ipad中的Zxing QR Code Reader不能横向工作

时间:2013-03-26 08:39:22

标签: ios ipad qr-code zxing landscape

我正在开发一个仅景观 iPad应用,并尝试将Zxing QR Code Scanner library集成到该项目中。我能够成功地集成库,并且在没有任何编译器错误的情况下运行。

问题

  1. 即使我的应用程序是横向的,Zxing相机视图也是 显示为肖像。
  2. 我无法使用该库进行扫描。我不知道是不是相机 以不同方向显示的图层就是它的原因。
  3. 我的项目设置

    1. iPad仅景观应用
    2. 目标sdk: iOS 6.1
    3. 部署目标: iOS 6.0或更高版本
    4. zxing版本: 2.1
    5. 测试: iPad 2,iOS 6.1
    6. 我的代码

      嗯,代码很简单,我只是从我的ZxingWidgetController调用HomeViewController并实现委托方法..代理永远不会被解雇。

      HomeViewController.h

      @interface HomeViewController : UIViewController<ZXingDelegate>{
      }
      @end
      

      HomeViewController.m

      -(void) openCameraScanner{
          ZXingWidgetController *ctrller       =   [[ZXingWidgetController alloc] 
                                    initWithDelegate:self showCancel:YES OneDMode:NO];
          ctrller.delegate                     = self;
          [self presentViewController:ctrller animated:YES completion:nil];
      }
      
      
      - (void)zxingController:(ZXingWidgetController *)controller 
                                   didScanResult:(NSString *)reslt{
          [self showDismissiveAlertWithMessage:[NSString 
                           stringWithFormat:@"qr code read is : %@ ", reslt]];
      }
      
      - (void)zxingControllerDidCancel:(ZXingWidgetController *)controller{
          [self showDismissiveAlertWithMessage:@"Failed to read qr code"];
      }
      

      好吧,如果我的问题不够明确,这是我的横向应用程序的缩小版本,其中有一幅肖像看着Zxing ..

      enter image description here

2 个答案:

答案 0 :(得分:1)

小部件从未真正设计用于旋转,我不太确定它的作用。由于旋转,zxing可能会从AVFF获得扭曲/严重裁剪的图像流。处理AVFF时,处理所有不同的方向相当容易出错。

在objc目录中,iOS / OS X还有另一个zxing接口。它的水平要低得多(CALayer级别)。这使得整合它更多的工作,但也使处理旋转(更多)可行。它对旋转没有任何魔力:你仍然必须自己放置和转换层,这从根本上说有点棘手。

答案 1 :(得分:-1)

在viewDidAppear

时在ZXingWidgetController.m中尝试此操作
float iDegree = 90.0f;
  CATransform3D transform =  CATransform3DMakeRotation(iDegree, 0, 0, 1.0);
    self.prevLayer.transform =transform;
    self.prevLayer.frame = CGRectMake(0.0, 0.0, 1024, 768);