swift UIActivityIndicatorView .hidden = false ne fonctionne pas
Je suis en train de montrer un Indicateur d'Activité de la Vue une fois qu'un bouton est pressé, mais il ne veut pas montrer. Si je ne cherche pas à cacher à tout, il montre, et quand j'essaie de le cacher, il se cache. Mais s'il est caché, il ne sera pas montrer de nouveau.
Voici le code:
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")
Peu importe ce que, l'arrêt de l'animation, et il peut se cacher, mais peu importe ce que je fais, il semble juste de sauter le loading.hidden = false
et va directement à l'impression du message.
Ce qui pourrait se passer?
Il n'y a pas d'attente ici - chaque ligne est dans la même fonction, sauf si vous êtes en utilisant quelque chose comme un sleep() ou une sorte d'appel asynchrone, sera exécutée immédiatement l'un après l'autre. Ce n'est pas comme le chargement.startAnimating() sera appelée, les choses vont aller en attente, et puis un moment plus tard, le reste se fera. Ils arrivent presque instantanément l'un après l'autre. Nous montrer plus de code pour le contexte.
Non, il n'est en attente, le
Nous montrer le reste du code ne peut pas vous aider autrement.
Il y a beaucoup de code, plus de 200 lignes. Mais je vais essayer de poster ce qui est pertinent...
Lorsque soumettre est touché, si la si la déclaration est vraie, vous serez immédiatement cacher chargement. Et les gens ne veulent aider, mais vous devez fournir suffisamment d'informations.
Non, il n'est en attente, le
...
est où d'autres code va. Il appelle à un serveur, et il y a une période d'attente (la demande). Et puis j'ai même essayé de différentes méthodesNous montrer le reste du code ne peut pas vous aider autrement.
Il y a beaucoup de code, plus de 200 lignes. Mais je vais essayer de poster ce qui est pertinent...
Lorsque soumettre est touché, si la si la déclaration est vraie, vous serez immédiatement cacher chargement. Et les gens ne veulent aider, mais vous devez fournir suffisamment d'informations.
OriginalL'auteur | 2014-09-09
Vous devez vous connecter pour publier un commentaire.
Je recommande de ne pas utiliser la .caché bien à tous. Utiliser le .hidesWhenStopped propriété et mettre à vrai. Puis il suffit d'invoquer la .startAnimating() méthode et la UIActivityIndicatorView apparaîtront automatiquement et sera d'animer. Invoquer la .stopAnimating() méthode et la UIActivityIndicatorView automatiquement cacher.
C'est en fait la bonne réponse,
hidden
la propriété est tout simplement pas de travail pourUIActivityIndicatorView
. Je suis tout à fait frustated que les gens à répondre à des questions ici sans même avoir testé problème à portée de main.OriginalL'auteur Dan Ross
Utiliser le PGCD (Grand Central Dispatch) routines:
OriginalL'auteur zisoft