看起来没有简单明了的方法能够使自定义按钮显示系统的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()
}
运行此代码后,将出现以下弹出菜单: