現在、iOS 6 で実行する iPad アプリに取り組んでいます。
アプリに UIImagePickerController のサブクラスを実装しました。このサブクラスは、関数- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
と- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
関数をオーバーライドしてカメラを強制的に横向きにします。
それを介して画像ピッカーを起動するpresentViewController
と、カメラの「読み込み」画面に引っかかる可能性がランダムにあるようです。閉じたカメラのシャッターのように見えるもの。この画面を終了するか、画面をロック/ロック解除しない限り、アプリはこの画面でフリーズします。その後、アプリは正しく機能します。
カメラ ビュー用のカスタム UI もあります。ただし、追加する前にこの問題に気付いていたので、関係ないと思います。
ピッカーを開くために必要なものは次のとおりです。
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
self.modalController = [[CameraLandscapeImagePicker alloc] init];
self.modalController.delegate = self;
self.modalController.sourceType = UIImagePickerControllerSourceTypeCamera;
self.modalController.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage, nil];
self.modalController.allowsEditing = NO;
[self.viewController presentViewController:modalController animated:YES completion:nil];
//add the overlaying view ui
[self.modalController buildCustomOverlay];
self.newMedia = YES;
}
どんな助けでも大歓迎です。
[編集] - 更新: この問題を意図的に再現する方法を見つけました。以下は手順です。
- アプリの「キャプチャ」ボタンをタップしてカメラをロードします
- カメラ インターフェイスを終了します
- iPadのホームボタンを押す
- ホーム画面のアイコンをタップしてアプリを再度開きます
- アプリの「キャプチャ」ボタンをもう一度タップします
- シャッター画面でカメラがフリーズする
また、xcodeに接続しても発生することに気付きました。
UIImagePickerController オブジェクトがシングルトン経由で提供されるようにコードを変更しました。以前は、毎回新しい UIImagePickerController オブジェクトを作成していました。これは効果がなく、まだ同じ問題が発生しています。シャッター画面で約 5 分間アプリを実行したままにしましたが、まだスタックしています。