Swift 刷新控制器中的声音

Swift 刷新控制器中的声音,swift,tableview,uirefreshcontrol,Swift,Tableview,Uirefreshcontrol,因此,我的UITableViewController中有标准的刷新控制器,它更新表视图中的数据 lazy var refresher: UIRefreshControl = { let refreshControl = UIRefreshControl() refreshControl.tintColor = .lightGray refreshControl.addTarget(self, action: #selector(refresh), for: .value

因此,我的UITableViewController中有标准的刷新控制器,它更新表视图中的数据

 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应用程序相同。有可能做到吗?

您可以通过这个简单的解决方案实现您的目标。首先在类中导入
AVFoundation
,然后将音频文件拖动到xcode,将其添加到项目中:

然后创建播放声音的方法(如果您的文件不是mp3,则更改类型的
参数值):

最后,在刷新开始时调用该方法

@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()
    }
}

当刷新结束时。

谢谢,效果很好!!没有意识到这有多容易。另一个问题。如果手机处于静默模式,如何使声音静音?@YessenYermukhanbet您是否尝试过在静默模式下的设备上运行此代码?我相信声音不会播放。是的,我也将它下载到我的设备上,并尝试将其更改为静音模式。然而,它仍然在播放这种声音。从网络上看,它似乎应该被静音,但奇怪的是,事实并非如此。
@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()
    }
}