1

ビューを作成する必要がありcameraoverlayます (追加するためZBar sdk reader)。私の質問は、必要のないすべてのオブジェクトをプログラムで作成する方法です。現在、すべてのオブジェクトをプログラムで作成し、それらを に追加して、ビューとしてmyView使用しています。myViewcameraoverlay

[self.myView addSubview: myImage];
[self.myView addSubview: self.mylabel];
[self.myView addSubview: myButton];

reader.cameraOverlayView=self.myView;

私は別のコントロールビューを追加しようとし、それにビューを追加してからタブバーを作成し、動作しないこのコードを試しました:

TestViewController *test=[[TestViewController alloc]init];
reader.cameraOverlayView=test.testView;

プログラムでオブジェクトを作成するのは私にとって難しいのですが、これにより、 で作成されたオブジェクトのソース コードをxcode見つけるxcodeことができます。

4

1 に答える 1

1

機能するいくつかのアプローチがあります

  • コードでカスタム コンテナ ビューを作成します。zbar ビューと任意のカスタム ビュー (上部にスキャナー グラフィックスなど) を追加します。これは私が最近したことです。

  • xib ベースのビューを作成し、その中に zbar ビューを含めます。「オブジェクト」コンポーネントを参照してください。

  • カスタム ビューを xib から読み込んで追加します。

時間があれば、プログラムでビューを作成する方法を学ぶために投資することをお勧めします。

これには以下が含まれます。

  • ビューコントローラーで loadView メソッドをオーバーライドします。

  • サブビューを含む UIView のカスタム サブクラスを返します。これらには、zbar ビューとオーバーレイが含まれます。

  • UIView で layoutSubviews メソッドを使用する方法を学びます。ヒントは、子ビューのフレームを cparent ビューの境界に対して相対的に設定します。

Github にはたくさんのカスタム コンポーネントがあります。DCSwitch や CMPoptip をチェックするか、ManiacDev への貢献を読んでください。

* リクエストに応じて - スキャン成功後にサブビューを追加 *

- (void)readerView:(ZBarReaderView*)view didReadSymbols:(ZBarSymbolSet*)symbols fromImage:(UIImage*)image
{
    for (ZBarSymbol* symbol in symbols)
    {
        [self presentScannedOverlay];
        [_scanInProgressOverlay setAnimating:NO];
        [_readerView stop];
        [_delegate didScanPayload:symbol.data];
        break;
    }
}


- (void)presentScannedOverlay
{
    //Be sure to override layoutSubviews, so that you can position the view below, 
    //relative to its parent. . if you already know the size of the parent, just replace
    //CGRectZero with CGRectMake(some values)
    _scannedOverlayView = [MyOverlayView alloc] initWithFrame:CGRectZero]; 
    [self addSubView:scannedOverlayView];
}
于 2013-06-20T14:32:39.427 に答える