swift UIActivityIndicatorView.hidden=false不工作
我试图在按下按钮后显示活动指示器视图,但它不想显示。如果我根本没有将其设置为隐藏,它会显示,当我尝试隐藏它时,它会隐藏。但如果它被隐藏,它将不会再次显示 代码如下:swift UIActivityIndicatorView.hidden=false不工作,swift,xcode6,uiactivityindicatorview,xcode6-beta7,Swift,Xcode6,Uiactivityindicatorview,Xcode6 Beta7,我试图在按下按钮后显示活动指示器视图,但它不想显示。如果我根本没有将其设置为隐藏,它会显示,当我尝试隐藏它时,它会隐藏。但如果它被隐藏,它将不会再次显示 代码如下: override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. loading.hidden = true } @IBAction func submit() {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
loading.hidden = true
}
@IBAction func submit() {
loading.hidden = false
loading.startAnimating()
if chosenCategory == "" || txtName.text == "" || txtEmail.text == "" {
loading.stopAnimating()
loading.hidden = true
} else {
println("animation")
不管怎样,“停止”动画都可以工作,它可以隐藏,但不管我做什么,它似乎只是跳过了load.hidden=false
,直接将消息打印出来
可能发生什么情况?使用GCD(中央大调度)例程:
self.activityIndicator.startAnimating()
self.activityIndicator.hidden = false
dispatch_after(DISPATCH_TIME_NOW, dispatch_get_main_queue(), { ()->() in
... // your long running code here
self.activityIndicator.stopAnimating()
})
我建议不要使用.hidden属性。改为使用.hidesWhenStopped属性,并将其设置为true。然后只需调用.startAnimating()方法,UIActivityIndicatorView就会自动显示并设置动画。调用.stopAnimating()方法,UIActivityIndicatorView将自动隐藏
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
loading.hidesWhenStopped = true //this is all you need to change
}
@IBAction func submit() {
loading.startAnimating() // becomes visible
if chosenCategory == "" || txtName.text == "" || txtEmail.text == "" {
loading.stopAnimating() // goes into hiding
} else {
println("animation")
这里没有等待——同一个函数中的每一行,除非您使用的是sleep()或某种异步调用,否则都会立即一行接一行地执行。这与加载不同。将调用startAnimating(),事情将暂停,然后一段时间后,其他事情将发生。它们几乎会在瞬间一个接一个地发生。为我们展示更多的上下文代码。不,还有等待,
…
是其他代码要去的地方。它调用服务器,并且有一段等待时间(请求)。然后我甚至用不同的方法尝试了它们,向我们展示了其余的代码——否则就帮不了你。有很多代码,超过200行。但我会尝试发布相关内容…当点击submit时,如果if语句为true,您将立即隐藏加载。人们确实希望提供帮助,但您需要提供足够的信息。我认为,如果我将hidesWhenStopped设置为YES,则切换隐藏属性与启动/停止动画设置()相同。。。但我错了。使用start/stopAnimating()效果很好。这实际上是正确的答案,hidden
属性根本不适用于UIActivityIndicatorView
。我很沮丧,人们在这里回答问题时甚至没有测试过手头的问题。