微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift 活动指示器仅在某些时候出现

如何解决Swift 活动指示器仅在某些时候出现

功能需要几秒钟才能完成,当我按下按钮时,大约有一半的时间,活动指示器会出现在屏幕上,直到该功能完成,就像它应该的那样。另一半时间,屏幕在执行该功能时会冻结,并且活动指示器从不出现。

    @IBAction func buttonAction(_ sender: Any) {
        activityIndicator.startAnimating()
            dispatchQueue.global(qos: .default).async {
                dispatchQueue.main.async {
                    self.function()
                    self.activityIndicator.stopAnimating()
                }
            }
    }

解决方法

我认为函数不应该在主队列中执行:

   @IBAction func buttonAction(_ sender: Any) {
    activityIndicator.startAnimating()
        DispatchQueue.global(qos: .default).async {
            self.function()
            DispatchQueue.main.async {
              self.activityIndicator.stopAnimating()
            }
        }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。