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 码阅读器无法横向工作的主要内容,如果未能解决你的问题,请参考以下文章
在Xcode 4.5中使用ZXing库时,体系结构armv7的未定义符号
Android 系列 5 7使用Google ZXing条形码扫描器扫描条形码或QR码