【问题标题】:zxing reader in landscape mode横向模式下的 zxing 阅读器
【发布时间】:2012-03-13 16:31:02
【问题描述】:

我有一个问题;我为我的 iPad 应用程序使用了 zxing 库;读取二维码效果很好。

但它在横向模式下的阅读器会将摄像头的实时画面向​​右旋转 90 度;我希望它没有旋转,就像在没有旋转的纵向模式下一样。

在纵向模式下,视频源不旋转;看看

但是在 Landscapemodeleft 中,视频源是旋转的;再看看

【问题讨论】:

  • 你实现了shouldRotateToInterfaceOrientation方法返回YES吗?
  • 是的,我已经为它分配了“是”,阅读器以横向启动,但也将实时提要向右旋转 90 度,这就是它不应该将实时提要旋转 90 度的问题,即提要显示一切都是垂直的,应该是水平的。

标签: ios xcode ipad zxing


【解决方案1】:

Zxing 库使用AVFoundation 框架来显示实时摄像机层。这个层(prevLayer)在initCapture方法中添加到ZXingWidgetController的视图层上。因此,每当您旋转相机时,该图层也会旋转。为了使该层保持在固定位置,您需要使用以下旋转变换将其再次旋转 0, M_PI, -M_PI/2, M_PI/2 in portrait, upsideDown, landscapeRight, landscapeLeft

CATransform3D transform =  CATransform3DMakeRotation(angle, 0, 0, 1.0);
self.prevLayer.transform =transform;
self.prevLayer.frame = frame; // you may need to set it also if needed.

【讨论】:

  • CATransform3D 变换 = CATransform3DMakeRotation(190.7, 0, 0, 1.0); self.prevLayer.transform =变换;工作谢谢!
  • 嘿,谢谢,您宁愿使用 M_PI_2 而不是 M_PI/2 以避免不精确。无论如何都很好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多