iOS - 如何在Swift中显示“AirPlay”弹出菜单?

时间:2017-07-03 06:39:58

标签: ios swift xcode airplay

如何在Swift项目中显示AirPlay弹出菜单? (许多应用程序,如Spotify可以显示如下所示):

enter image description here

2 个答案:

答案 0 :(得分:9)

毕竟,似乎没有简单明了的方法让自定义按钮显示系统的Airplay菜单。

然而,@ totiG指向一个有趣的资源,我创建了一个脚本,在屏幕的可见区域之外创建标准音量控制,模拟点击Airplay按钮:

func showAirplay() {
    let rect = CGRect(x: -100, y: 0, width: 0, height: 0)
    let airplayVolume = MPVolumeView(frame: rect)
    airplayVolume.showsVolumeSlider = false
    self.view.addSubview(airplayVolume)
    for view: UIView in airplayVolume.subviews {
        if let button = view as? UIButton {
            button.sendActions(for: .touchUpInside)
            break
        }
    }
    airplayVolume.removeFromSuperview()
}

运行此代码后,将显示以下弹出菜单:

enter image description here

答案 1 :(得分:3)

这是一个很好的解决方法,必须使用MPVolumeView的按钮。

  1. 创建一个MPVolumeView,并将其隐藏在视图层次结构中的某个位置。
  2. 每当您想要显示选择器时:
  3. [[UIApplication sharedApplication] sendAction:NSSelectorFromString(@"_displayAudioRoutePicker") to:myVolumeView from:myView forEvent:nil];

    可选3:在iPad上,您需要传递一个UIEvent,否则只会在屏幕顶部输入popover,它看起来会很糟糕。从- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;捕获事件并将其传递给我们的电话。