2011-12-19 8 views
0

私は、ビデオカメラから画像を取り込んで、画像上で何らかの処理を行った後に情報を画面に表示するアプリケーションを持っています。私は一時停止ボタンを追加したので、ユーザーは画面上の最新の結果を「フリーズ」することができます。Xcode Add Delay Soボタンプレス登録可能

一時停止は機能しますが、それは1サイクル遅れです。ボタンが押されるまでに、次の画像はすでに処理されているので、画面にロックされている結果は実際には次の画像から得られます。私は遅延を追加して、ユーザが一時停止を押す時間を、次のようにして試してみました。

[self performSelector:@selector(waitForPause) withObject:nil afterDelay:2]; 

これは私が期待していたとおりには実行されません。この一時停止を正しく処理する方法に関するアイデアはありますか?

編集:AppDelegateファイルには、この種の処理を行うように見える機能がいくつかあります。つまり、appleWesResignActiveを使用して、Appleのドキュメントに基づいてゲームを一時停止することができます。誰かがこのような目的のためにこれを使用しましたか?メソッドは現在空です。ボタンの押下に基づいてアプリケーションを一時的に一時停止するには、このメソッドに何を追加する必要がありますか?

UPDATE:ここでは、現在、一時停止ボタンを実装して処理する方法を示します。

//Pause Button 
self.pauseButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[pauseButton addTarget:self 
       action:@selector(pauseButtonPress:) 
     forControlEvents:UIControlEventTouchDown]; 
[pauseButton setTitle:@"Pause" forState:UIControlStateNormal]; 
pauseButton.frame = CGRectMake(80.0, 100.0, 160.0, 40.0); 
[self.view addSubview:pauseButton]; 

- (void) pauseButtonPress:(id) sender { 

    [pauseButton setHidden: YES]; 
    [playButton setHidden: NO]; 
    continueRunningScript = NO; 
    NSLog(@"paused"); 
    NSLog(@"Current Result: %@", result_string); 

} 

ありがとうございます。

+0

私はこの昨日についてあなたの質問を見ました。あなたの一時停止イベントを 'touchesBegan:' touchesEnded: 'ではなく、ユーザーの指がボタンに当たった直後に起動させるように設定しようとしましたか?それはあなたが必要なすべてかもしれません。 –

+0

どうすれば設定できますか、@Tim Kemp?元の投稿を編集して、現在の実装と一時停止ボタンの処理を表示しました。 –

答えて

0

遅延を実装する必要はありません。これを試してみてください:

新しい画像を画面にレンダリングするたびに、古い画像を変数previousImageに保存してください。ユーザーが一時停止ボタンを押すと、画面上に表示されている内容をpreviousImageの内容で置き換えるだけです。

関連する問題