機能するいくつかのアプローチがあります
コードでカスタム コンテナ ビューを作成します。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];
}