Ios 将UIActivityIndicatorView用于登录过程,但作为I';我正在使用一个线程,我可以';别停下来
我使用Ios 将UIActivityIndicatorView用于登录过程,但作为I';我正在使用一个线程,我可以';别停下来,ios,multithreading,swift,uiactivityindicatorview,Ios,Multithreading,Swift,Uiactivityindicatorview,我使用UIActivityIndicatorView在验证登录详细信息时向用户显示正在发生的事情。下面的代码显示了我正在执行的操作: func confirmLogin(sender: UIButton) { ViewController.gVariables.gUser = userNameText.text ViewController.gVariables.gPwd = passwordText.text ViewController.gVariables.gLog
UIActivityIndicatorView
在验证登录详细信息时向用户显示正在发生的事情。下面的代码显示了我正在执行的操作:
func confirmLogin(sender: UIButton) {
ViewController.gVariables.gUser = userNameText.text
ViewController.gVariables.gPwd = passwordText.text
ViewController.gVariables.gLoggedIn = ""
indicatorView.startAnimating()
passwordText.text = ""
GetRemoteData.getValidationFromServer( { (svrData) -> Void in
dispatch_async(dispatch_get_main_queue()) {
self.indicatorView.stopAnimating()
self.indicatorView.hidden = true
MenuViewController.processLogin()
}
})
}
用户名和密码被传递到myGetRemoteData
类中的getValidationFromServer
方法,该类处理许多其他web服务活动。我将指示器设置为在调用该方法之前开始设置动画,但是下面的代码应该停止指示器,但它与在另一个线程上没有区别
如何关闭指示器?getValidationFromServer的完成块正在将活动指示器视图的停止分派回主队列。这是正确的做法。当调度回主队列的代码运行时,指示器视图应该停止 如果指示器视图没有停止,那么发生这种情况的逻辑原因只有几个:
指示灯视图
(例如在过程登录
)我建议在调用
stopAnimating
的地方放置一个断点或日志消息,看看是否达到了那个点。从那里,您可以诊断问题的根源。但是问题中提供的代码不是问题的根源。getValidationFromServer的完成块正在将活动指示器视图的停止调度回主队列。这是正确的做法。当调度回主队列的代码运行时,指示器视图应该停止
如果指示器视图没有停止,那么发生这种情况的逻辑原因只有几个:
指示灯视图
(例如在过程登录
)stopAnimating
的地方放置一个断点或日志消息,看看是否达到了那个点。从那里,您可以诊断问题的根源。但问题中提供的代码并不是问题的根源