0

ユーザーが前後にスワイプするたびにサウンドを再生しようとしています。

ボタンが押されたときにサウンドを再生する をUIButton使用して、すべての にサウンドを既に追加しましたが、問題なく動作します。IBActionしかし、スワイプジェスチャで同じことをしようとすると、うまくいきません。スワイプ ジェスチャはストーリーボードで作成され、スワイプは正常に動作しますが、サウンドを再生するように指定する IBAction にジェスチャ レコグナイザーを接続しようとすると、スワイプはしますが、サウンドはありません。IBActions の代わりにこれを実装する別の方法はありますか?

編集:さらに調査すると、ストーリーボードでジェスチャー認識エンジンをctrl +クリックすると接続されていると表示されているにもかかわらず、スワイプジェスチャー認識エンジンに接続しているメソッドが呼び出されないようです。右スワイプに問題なく接続されたメソッドがありますが、メソッドが呼び出されるように左スワイプに適切に接続するメソッドを取得できないようです。

4

2 に答える 2

0

メインスレッドで、または遅延後にサウンドを再生してみてください。イベント スレッドでサウンドを再生しようとすると、問題が発生する可能性があります。コード A または B のいずれかを試してみて、どうなるか教えてください。

コード A:

- (void)playAudioOnSwipe {
    // Play the audio here
}

- (IBAction) onSwipe {
    [self performSelector:@selector(playAudioOnSwipe) withObject:nil afterDelay:0.5];
}

コード B:

- (void)playAudioOnSwipe {
    // Play the audio here
}

- (IBAction) onSwipe {
    [self performSelectorOnMainThread:@selector(playAudioOnSwipe) withObject:nil waitUntilDone:NO];
}
于 2013-05-24T17:58:41.427 に答える
0

スワイプに関連付けられたメソッドが呼び出されなかった理由を理解することはできませんでしたが、スワイプ先のページの viewDidLoad で目的のサウンドが呼び出されるようにしました。完璧な解決策ではありませんが、仕事は完了し、音も問題ありません。

于 2013-06-05T18:51:28.950 に答える