【问题标题】:How to play tick sound of UIPickerView on iOS 10?如何在 iOS 10 上播放 UIPickerView 的滴答声?
【发布时间】:2017-02-10 15:16:48
【问题描述】:

标题有它... iOS 10 上有一个新的声音,UIPickerView 会在每次更改所选项目时播放。有没有办法播放那个声音?如果有系统声音,则最好使用AudioServicesPlaySystemSound(_),如果没有,则以任何其他方式使用。

【问题讨论】:

    标签: ios audio uipickerview ios10 system-sounds


    【解决方案1】:

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

    AudioServicesPlaySystemSoundWithCompletion(1157, nil);
    

    AudioServicesPlaySystemSound 将在未来的版本中被弃用。请改用AudioServicesPlaySystemSoundWithCompletion

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

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

    【讨论】:

      【解决方案2】:

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

      //  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);
      

      【讨论】:

        猜你喜欢
        • 2011-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-02
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        相关资源
        最近更新 更多