0

每当用户向前或向后滑动时,我都会尝试播放声音。

我已经为我的所有UIButtons添加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 回答