1

私は横向きのみのiPadアプリに取り組んでおり、 ZxingQRコードスキャナーライブラリをプロジェクトに統合しようとしています。ライブラリを正常に統合し、コンパイラエラーなしで実行できます。

問題

  1. 私のアプリケーションは横向きですが、Zxingカメラビューは縦向きで表示されています。
  2. ライブラリを使用してスキャンできません。カメラレイヤーが異なる向きで表示されていることが理由かどうかはわかりません。

私のプロジェクトのセットアップ

  1. iPadランドスケープのみのアプリケーション
  2. ターゲットSDK:iOS 6.1
  3. 展開対象:iOS6.0以降
  4. zxingバージョン:2.1
  5. テスト:iPad 2、iOS 6.1

私のコード

コードは単純です。私は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に見えます。

ここに画像の説明を入力してください

4

2 に答える 2

1

ウィジェットが実際に回転用に設計されたことはなく、それが何をするのかよくわかりません。回転が原因で、zxingがAVFFから歪んだ/ひどくトリミングされた画像のストリームを取得している可能性があります。AVFFを処理する場合、すべての異なる方向を処理すると、かなりエラーが発生しやすくなります。

objcディレクトリには、iOS /OSX用のzxingへの別のインターフェイスがあります。それははるかに低いレベル(CALayerレベル)です。これにより、統合がより多くの作業になりますが、回転の処理も(より)実行可能になります。回転には何の魔法もありません。レイヤーを自分で配置して変換する必要があり、それは基本的にやや注意が必要です。

于 2013-03-30T13:39:13.740 に答える
-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); 
于 2013-05-04T04:12:22.613 に答える