0

読んでくれてありがとう、私はカメラ タイマー アプリを作成しています。タイマーが 0 になると、写真が撮られるようになっています。しかし、そうではありません。:c。

HERE は、新しいコントロールの PickerController とオーバーレイを表示するためのコードです。(ViewDidLoad メソッドはこれをロードするには早すぎます。)

-(void)viewDidAppear:(BOOL)animated{
    overlayView.hidden = false;
imagePicker = [[UIImagePickerController  alloc] init];
imagePicker.delegate = self;
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[self presentViewController:imagePicker animated:YES completion:NULL];
imagePicker.showsCameraControls = NO;
imagePicker.cameraOverlayView = overlayView;

}

HERE は、タイマーが 0 になり、写真を撮るためのコードです。

//cameraTimeInt is the timer//
if(cameraTimeInt ==0){

//timerDisplay is the picture displaying the countdown to 0//
        [timerDisplay setImage:NULL];

        [imagePicker takePicture];



    }

「写真を撮る」ボタンをクリックしたときのコードは次のとおりです。

-(IBAction)takePicture:(id)sender {




    cameraTimeInt = timeSlider.value;



    NSTimer *timerStart = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerTickStart:) userInfo:nil repeats:YES];
    [[NSRunLoop currentRunLoop] addTimer:timerStart forMode:NSDefaultRunLoopMode];



}

私はコードが少しずさんであることを知っていますが、誰かが何かアイデアを持っていれば、それは大歓迎です:)

また、私が得ているエラーはこれです:

CameraTimer[392:907] UIImagePickerController: 写真を撮る要求を無視します。画像がすでにキャプチャされているか、カメラの準備ができていません。

カチッという音が 2 回聞こえるので、2 つの画像を撮ろうとしているように見えます。

4

2 に答える 2

0

あなたの場合、NSTimer写真を撮る時間がとても早いです。 すべてのコンポーネントが初期化プロセスにあるときに写真を撮る可能性があるため、 7 秒に変更します。

-(IBAction)takePicture:(id)sender {

    cameraTimeInt = timeSlider.value;

    NSTimer *timerStart = [NSTimer scheduledTimerWithTimeInterval:7 target:self selector:@selector(timerTickStart:) userInfo:nil repeats:YES];
    [[NSRunLoop currentRunLoop] addTimer:timerStart forMode:NSDefaultRunLoopMode];

}
于 2013-01-28T09:27:48.587 に答える
0

編集済み

    UIImageWriteToSavedPhotosAlbum(_imgView.image, nil, nil, nil);
于 2013-01-28T09:23:52.770 に答える