Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIActivityIndicator停止动画制作()不工作_Ios_Swift_Uiactivityindicatorview - Fatal编程技术网

Ios UIActivityIndicator停止动画制作()不工作

Ios UIActivityIndicator停止动画制作()不工作,ios,swift,uiactivityindicatorview,Ios,Swift,Uiactivityindicatorview,在我的SignInViewController中,我有一段代码,在单击按钮时添加活动,在我的应用程序委托中,我运行停止动画功能。当功能完成时,我知道该功能正在运行,因为我可以让它打印出一些内容,但活动指示器没有消失 对斯威夫特来说,任何帮助都是全新的,因此,我非常感谢你的回答 @IBAction func googleSignInButton(_ sender: Any) { GIDSignIn.sharedInstance().uiDelegate = se

在我的SignInViewController中,我有一段代码,在单击按钮时添加活动,在我的应用程序委托中,我运行停止动画功能。当功能完成时,我知道该功能正在运行,因为我可以让它打印出一些内容,但活动指示器没有消失

对斯威夫特来说,任何帮助都是全新的,因此,我非常感谢你的回答

     @IBAction func googleSignInButton(_ sender: Any) {

            GIDSignIn.sharedInstance().uiDelegate = self
            GIDSignIn.sharedInstance().signIn()


            activityIndicator.center = self.view.center
            activityIndicator.hidesWhenStopped = true
            activityIndicator.activityIndicatorViewStyle = 
            UIActivityIndicatorViewStyle.gray
            view.addSubview(activityIndicator)

            activityIndicator.startAnimating()
            UIApplication.shared.beginIgnoringInteractionEvents()


        }

        func stopanimating() {
        activityIndicator.stopAnimating()
        UIApplication.shared.endIgnoringInteractionEvents()
        }

尝试在主线程上调用
stopanimating()

func stopanimating() {
    DispatchQueue.main.async {
        self.activityIndicator.stopAnimating()
    }
}

你在主线程上调用
stopanimating()
吗?我不确定你所说的ui线程是什么意思,你是指在当前视图控制器上,如果是,我在函数末尾调用var sivc=SignInViewController(),然后调用func(){…..sivc.stopanimating}@Ray是您的函数被调用。当我添加了一个打印(“正在运行”)并且它出现在我的log@ray您可以尝试在调用该函数的点隐藏活动指示器。它停止旋转了吗?它需要我把self.activityIndicator.stop animating()放在那里,但仍然不能去掉活动指示器。这并不是关于你原来的问题,而是告诉你关于“self”的评论:它需要你把“self.activityIndicator…”放在那里,因为Swift想让你明白,一旦您在闭包{…}中引用该变量,这可能会导致引用循环。您是否有从“activityIndicator”到SignenViewController()类的出口?它在您上面发布的代码中不可见,因此可能您只是在实例化ActivityIndicator类型的新对象。@Ray尝试调用google委托函数,检查是否成功登录viewController并执行停止动画,它将起作用。