刷新控制器中的声音
Sound in Refresh controller
所以,我的 UITableViewController 中有标准刷新控制器,它更新 table 视图中的数据。
lazy var refresher: UIRefreshControl = {
let refreshControl = UIRefreshControl()
refreshControl.tintColor = .lightGray
refreshControl.addTarget(self, action: #selector(refresh), for: .valueChanged)
return refreshControl
}()
@objc func refresh(){
getMethod()
self.tableView.reloadData()
let deadline = DispatchTime.now() + .milliseconds(500)
DispatchQueue.main.asyncAfter(deadline: deadline){
self.refresher.endRefreshing()
}
所以我想添加声音,当用户刷新开始时,以及刷新完成时的声音。与 Facebook 或 Twitter 应用程序中的相同。可以吗?
您可以通过这个简单的解决方案实现您的目标。首先在您的 class 上导入 AVFoundation
并将音频文件添加到您的项目中,方法是将它们拖到 xcode:
然后创建一个播放声音的方法(如果您的文件不是 mp3 则更改 ofType
参数值):
private var player: AVAudioPlayer?
func playSound(soundFileName: String) {
guard
let urlPath = Bundle.main.path(forResource: soundFileName, ofType: "mp3")
else { return }
let url = URL(fileURLWithPath: urlPath)
do {
player = try AVAudioPlayer(contentsOf: url)
player?.prepareToPlay()
player?.play()
} catch {
print(error)
}
}
终于在刷新开始时调用方法
@objc func refresh(){
playSound(soundFileName: "refresh-start")
getMethod()
self.tableView.reloadData()
let deadline = DispatchTime.now() + .milliseconds(500)
DispatchQueue.main.asyncAfter(deadline: deadline){
self.refresher.endRefreshing()
}
}
以及刷新结束时。
所以,我的 UITableViewController 中有标准刷新控制器,它更新 table 视图中的数据。
lazy var refresher: UIRefreshControl = {
let refreshControl = UIRefreshControl()
refreshControl.tintColor = .lightGray
refreshControl.addTarget(self, action: #selector(refresh), for: .valueChanged)
return refreshControl
}()
@objc func refresh(){
getMethod()
self.tableView.reloadData()
let deadline = DispatchTime.now() + .milliseconds(500)
DispatchQueue.main.asyncAfter(deadline: deadline){
self.refresher.endRefreshing()
}
所以我想添加声音,当用户刷新开始时,以及刷新完成时的声音。与 Facebook 或 Twitter 应用程序中的相同。可以吗?
您可以通过这个简单的解决方案实现您的目标。首先在您的 class 上导入 AVFoundation
并将音频文件添加到您的项目中,方法是将它们拖到 xcode:
然后创建一个播放声音的方法(如果您的文件不是 mp3 则更改 ofType
参数值):
private var player: AVAudioPlayer?
func playSound(soundFileName: String) {
guard
let urlPath = Bundle.main.path(forResource: soundFileName, ofType: "mp3")
else { return }
let url = URL(fileURLWithPath: urlPath)
do {
player = try AVAudioPlayer(contentsOf: url)
player?.prepareToPlay()
player?.play()
} catch {
print(error)
}
}
终于在刷新开始时调用方法
@objc func refresh(){
playSound(soundFileName: "refresh-start")
getMethod()
self.tableView.reloadData()
let deadline = DispatchTime.now() + .milliseconds(500)
DispatchQueue.main.asyncAfter(deadline: deadline){
self.refresher.endRefreshing()
}
}
以及刷新结束时。