如何在iOS 10上播放UIPickerView的滴答声?

时间:2016-10-02 15:44:45

标签: ios audio uipickerview ios10 system-sounds

标题有它... iOS 10上有一个新的声音,UIPickerView每次更改所选项目时都会播放。有没有办法播放这种声音?理想情况下,如果有系统声音,则为AudioServicesPlaySystemSound(_),如果没有,则为任何其他方式。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,终于找到了解决方法

AudioServicesPlaySystemSoundWithCompletion(1157, nil);

AudioServicesPlaySystemSound将在以后的版本中弃用。请改用AudioServicesPlaySystemSoundWithCompletion

如果要模仿UIPickerView的声音和振动,还应该添加以下代码。

if (@available(iOS 10.0, *)) {
    UIImpactFeedbackGenerator *impactFeedBack = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleLight];
    [impactFeedBack prepare];
    [impactFeedBack impactOccurred];
}

答案 1 :(得分:0)

您可以使用系统点击声音或保存它们并使用本地资源

//  NSURL *fileURL = [NSURL URLWithString:@"/System/Library/Audio/UISounds/wheels_of_time.caf"]; // Too loud
//  NSURL *fileURL = [NSURL URLWithString:@"/System/Library/Audio/UISounds/nano/TimerWheelHoursDetent_Haptic.caf"]; // Hours tick
SystemSoundID soundID;
NSURL *fileURL = [NSURL URLWithString:@"/System/Library/Audio/UISounds/nano/TimerWheelMinutesDetent_Haptic.caf"]; // Minutes tick
AudioServicesCreateSystemSoundID((__bridge_retained CFURLRef)fileURL, &soundID);
AudioServicesPlaySystemSound(soundID);
AudioServicesDisposeSystemSoundID(soundID);