我正在开发一个仅景观 iPad应用,并尝试将Zxing QR Code Scanner library集成到该项目中。我能够成功地集成库,并且在没有任何编译器错误的情况下运行。
嗯,代码很简单,我只是从我的ZxingWidgetController
调用HomeViewController
并实现委托方法..代理永远不会被解雇。
@interface HomeViewController : UIViewController<ZXingDelegate>{
}
@end
-(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 ..
答案 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);