3

私はここ数か月、UIImagePickerControllerを使用して、特にOS3.1以降の新機能を使用して、カメラビューの上にビューをオーバーレイするためにかなり広範囲に取り組んできました。これはうまくいきました。

ただし、現在、既存のビュー内にUIImagePickerControllerのカメラビューを表示できるようにするプロジェクトに取り組んでいます。基本的に、私が現在行っていることとは正反対です。

例としては、ナビゲーションコンポーネント(グラデーションのある上下の水平バーを考えてください)を備えたView Controllerがあり、これらのバーの1つでボタンをタップすると、コンテンツ領域にカメラビューが表示されます。シャッターアニメーションが上になり、上部と下部のナビゲーションバーが常に上部に表示されたままになります。

UIImagePickerControllerをウィンドウビューに追加し、モーダルで表示することに成功しましたが、サブビューとして追加することはできませんでした。

元:

[window addSubview:camera.view];
[self presentModalViewController:camera animated:YES];
4

3 に答える 3

7

あなたがする必要があるのはviewWillAppearとviewDidAppearを呼び出すことです。

_pickerControllerがUIImagePickerControllerのインスタンスである例を次に示します。

[self.view addSubview:_pickerController.view];
[_pickerController viewWillAppear:YES];
[_pickerController viewDidAppear:YES];
于 2010-06-02T20:48:31.843 に答える
2

ビューをビューに追加した後、イメージピッカーコントローラーでviewWillAppear:YESを呼び出します。モーダルビューコントローラビジネスをスキップします。

于 2009-11-19T01:03:47.020 に答える
0

API が の実際のビューに直接アクセスできるとは思いませんUIImagePickerController。クラスは実際には のサブクラスであるUINavigationControllerため、実際のビュー自体はないと思いますが、サブコントローラーとそのビューの呼び出しを管理します。

モーダルを呼び出すと、UIImagePickerController制御するビューがサブビューとしてウィンドウ (または他のビュー) に追加されません。それがモーダルビューの意味です。ビュー階層の「サイド」にビューを表示します。

これを一緒にハックできたとしても、Apple は API の一部ではなく、HIG に違反しているとして拒否すると思います。

于 2009-11-18T22:01:17.783 に答える