【发布时间】:2018-04-05 23:56:05
【问题描述】:
我正在使用UIAlertController 设置一个非常标准的操作表:
let alert = UIAlertController(title: "title",
message: nil,
preferredStyle: .actionSheet)
alert.addAction(
UIAlertAction(title: "button",
style: .default,
handler: { _ in
MediaPlayer.playSound(.click)
// The above line just uses AVAudioPlayer to play
// an MP3 file. Its implementation isn't relevant
// to the question and can be assumed to be correct.
}))
当我按下按钮时,警报消失,然后完成处理程序运行并播放声音。由于警报的关闭动画需要一段时间,因此在我按下按钮和播放声音之间存在非常明显的延迟;当声音开始时,警报甚至不再可见。
有没有办法在按下按钮后立即播放声音,而不是等到关闭动画完成?
此外,有没有一个简单的方法可以做到这一点? IE。 Apple 是否反对人们在警报按钮上添加点击声音?
【问题讨论】:
-
不,在调用警报操作处理程序时无法更改。
-
那么当用户点击警报按钮时基本上不可能播放声音?
-
可能。处理程序并不意味着在点击按钮的纳秒内运行。这是为了告诉您警报已被解除,并告诉您点击了哪个按钮。
标签: ios swift cocoa-touch uialertcontroller