按下登录按钮时会出现以下快速代码。
@IBAction func login(sender: UIButton)
{
sender.hidden = true;
self.loader.hidden = false;
println("HIDDEN");
sleep(2);
}
然而,登录按钮需要很长时间才能实际隐藏,很长一段时间后" HIDDEN"打印到控制台。我认为这是因为我在睡眠中添加了模拟延迟(2)但是我不确定如何在隐藏按钮后进行此睡眠。
答案 0 :(得分:1)
评论引导我找到这个异步工作的解决方案,因此不会阻塞导致隐藏操作暂停的主线程。
@IBAction func login(sender: UIButton)
{
sender.hidden = true;
self.loader.hidden = false;
dispatch_after(
dispatch_time(
DISPATCH_TIME_NOW,
Int64(3 * Double(NSEC_PER_SEC))
),
dispatch_get_main_queue(), {
let vc = self.storyboard?.instantiateViewControllerWithIdentifier("homeNavigation") as UIViewController;
self.presentViewController(vc, animated: true, completion: nil);
})
}