8

標準の画像ピッカーを使用して、カメラの写真を作成します。

ユーザーが写真イメージ ピッカーを作成すると、「再撮影」と「使用」の 2 つのボタンがあるプレビュー画面表示されます

プレビュー画面が現在アクティブであること、または「再撮影」ボタンが押されたことを検出する方法は? 出来ますか ?有用なプロパティまたはイベントですか? 画像ソースがライブラリである場合のようなものは、 is プロパティです - 編集を許可し、同様の screen を表示します。

UIImagePickerController * imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
4

2 に答える 2

0

事後少しですが、私のように誰かがまだこの答えを探しているのかもしれません。引き続きネイティブ カメラ コントロールを使用する場合は、ImagePickerController のサブビューをチェックして、録画後のビューが表示されているかどうかを確認できます。

BOOL videoTaken = NO;

for (UIView *aView in self.imagePickerController.view.subviews[0].subviews[0].subviews[0].subviews)
{
    if ([aView isKindOfClass:NSClassFromString(@"PLTileContainerView")])
    {
        videoTaken = YES;
        break;
    }
}

「PLTileContainerView」は、ビデオをフレームごとに表示できる編集スライダーを含むサブビューであるため、存在する場合は、ビデオが既に記録されていることを意味します。

于 2017-05-03T19:49:13.720 に答える
-2

用途:

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{    
    [picker dismissModalViewControllerAnimated:NO];
    NSString *type = [info objectForKey:@"UIImagePickerControllerMediaType"];
    if ([type isEqualToString:@"public.movie"]) {

    } else {
        UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    }
}

Cancel の場合、それを検出する方法はありません (禁止されている可能性のあるサブクラス化UIImagePickerController、または私が認識していない他の方法以外) が、確かに 2 番目のキャンセルは検出可能です:

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {    
    [picker dismissModalViewControllerAnimated:YES];
}
于 2013-01-29T11:54:01.627 に答える