2016-04-25 38 views
1

我使用SwiftLoading:的NSTimer与SwiftLoading

https://www.miniassets.com/news/1-create-loading-with-activity-indicator-in-swift-2-and-xcode-7.html

隐藏它,我用一个NSTimer:

var timer = NSTimer.scheduledTimerWithInterval(4.0, target: self, selector: #selector(ViewController.update), userInfo: nil, repeats: false) 

func update() 
{ 
    SwiftLoading().hideLoading() 
} 

功能 “更新()” 的4秒后解雇,还会触发hideLoading()函数,但加载视图保留在屏幕上。

有谁知道,为什么会发生这种情况?

+0

你确定'update'被触发吗?你把断点或检查日志? – Shubhank

回答

4
SwiftLoading().hideLoading() 

这行创建一个新SwiftLoading,然后隐藏了一个,而不是现有的。

当你第一次创建SwiftLoading,你应该把它分配给一个实例变量,以便以后可以将其隐藏:

let loading = SwiftLoading() //in your class, as an instance variable 

以开始加载对象:

loading.showLoading() 

要隐藏加载object:

loading.hideLoading() 
+0

由于它是从定时器发射的,它可能需要dispatch_async,因为它不在主线程上。 – ryantxr

+0

@ryantxr'NSTimer'使用运行循环,因此它将在主线程中调用。你可能在想'dispatch_after'。 – NobodyNada

+0

@ NobodyNada:哇,解决了我的问题!不,它会正确启动,非常感谢! – Manuel