我试图通过在用户单击“保存”按钮时显示活动指示器来创建与服务器的“模拟”交互。 (完成的应用程序实际上将与服务器交互)我为保存按钮设置了IBAction,然后调用activityIndicator对其进行动画处理,然后暂停。最后,活动指示器隐藏。唯一的问题,活动指示器未显示。如果我注释掉NSThread.sleepForTimeInterval(4)
和activityIndicatory.stopAnimating
,则会显示活动指示。我试图将它们移出IBAction的“保存”按钮,但这导致代码出错。这是代码:
@IBAction func saveDTrans(sender: UIBarButtonItem) {
activityIndicator.hidden = false
activityIndicator.startAnimating()
//pause code to let the activityIndicator show for a bit
NSThread.sleepForTimeInterval(4)
activityIndicator.stopAnimating()
activityIndicator.hidden = true
}
最佳答案
我不认为您想告诉线程休眠,因为这是主线程,并且活动指示器不会运行。这也不是一个好习惯。
您最好将其放在dispatch_after块中
@IBAction func saveDTrans(sender: UIBarButtonItem)
{
activityIndicator.hidden = false
activityIndicator.startAnimating()
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 4 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
activityIndicator.stopAnimating()
activityIndicator.hidden = true
}
}
关于swift - 事件指示器显示不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30541168/