iOS:ipad 中的 Zxing QR 码阅读器无法横向工作

Posted

技术标签:

【中文标题】iOS:ipad 中的 Zxing QR 码阅读器无法横向工作【英文标题】:iOS : Zxing QR Code Reader in ipad not working in landscape orientation 【发布时间】:2013-03-26 08:39:22 【问题描述】:

我正在开发一个横向 iPad 应用程序,并尝试将Zxing QR Code Scanner library 集成到项目中。我能够成功集成库,并且运行时没有任何编译器错误。

问题

    即使我的应用程序是横向的,Zxing 相机视图也是 显示为纵向。 我无法使用库进行扫描。不知道有没有相机 层以不同的方向显示是它的原因。

我的项目设置

    iPad 横向应用程序 目标 SDK:iOS 6.1 部署目标:iOS 6.0 或更高版本 zxing 版本:2.1 测试:iPad 2、iOS 6.1

我的代码

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

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 的纵向..

【问题讨论】:

不,我已经在不同的项目中使用过 Zxing 并且效果很好.. 从未寻找任何其他替代品。 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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); 

【讨论】:

以上是关于iOS:ipad 中的 Zxing QR 码阅读器无法横向工作的主要内容,如果未能解决你的问题,请参考以下文章

C# - 使用 ZXing.Net 解码 png QR 码

在Xcode 4.5中使用ZXing库时,体系结构armv7的未定义符号

Android 系列 5 7使用Google ZXing条形码扫描器扫描条形码或QR码

Xamarin Forms QR 码扫描仪黑屏

使用多个 DecoratedBarcodeViews 时视图保持黑色

无法比较 Zxing qr 扫描仪 onActivityResult 中的 int 变量