UIButton点击触摸时的声音 - 放在哪里?

Ami*_*ark 0 iphone xcode click uibutton

在我的应用程序中有一种特殊情况,我需要UIButton触摸伴有咔嗒声,类似于系统键盘上使用的声音.

我现在在toucesBegan上做这个:打电话 - 我能想到的最早的一个 - 但是,在很多情况下(特别是在较慢的设备上),声音被延迟并且整个点被遗漏 - 用户可能有在听到第一个声音之前触摸另一个按钮.

这不会发生在系统键盘上,也不会发生在我正在使用的其他应用程序中,所以他们必须以正确的方式进行:-)

一旦用户触摸屏幕,我应该在哪里放置点击代码使其发声?我宁愿在一个我无需检查自己触摸是否在按钮范围内的地方,但如果这是唯一的选择那么我愿意这样做.

用于创建声音的方法是否重要?我现在使用的是AudioServicesPlaySystemSound,这是最简单的方法.

谢谢.

Mat*_*Mat 5

正如DarkDust所说,为什么你不使用addTarget:action:forControlEvents:

对我来说工作正常:

[button addTarget:self action:@selector(playClick)  forControlEvents:UIControlEventTouchUpInside];

-(IBAction)playClick{
    NSString *effect;
    NSString *type;
    effect = @"Tink";
    type = @"aiff"; 
    SystemSoundID soundID;
    NSString *path = [[NSBundle mainBundle] pathForResource:effect ofType:type];
    NSURL *url = [NSURL fileURLWithPath:path];
    AudioServicesCreateSystemSoundID ((CFURLRef)url, &soundID);
    AudioServicesPlaySystemSound(soundID);  
}
Run Code Online (Sandbox Code Playgroud)