我试图通过在用户单击“保存”按钮时显示活动指示器来创建与服务器的“模拟”交互。 (完成的应用程序实际上将与服务器交互)我为保存按钮设置了IBAction,然后调用activityIndi​​cator对其进行动画处理,然后暂停。最后,活动指示器隐藏。唯一的问题,活动指示器未显示。如果我注释掉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/

10-12 06:21