2011-03-21 4 views
2

J'ai un indicateur d'activité qui doit être activé dès qu'un bouton est cliqué, puis arrêté après une déclaration conditionnelle ...UIActivityIndicatorView Démarrage et arrêt

J'ai regardé des moyens en ligne pour mettre en œuvre cela, mais tout je peux trouver est de les mettre en webviews pas les transformer simplement, puis à nouveau .... ci-dessous est mon problème de base

-(IBAction)SavePassword:(id)sender{ 
\\start animating activity indicator 
if(post recieved no errors){ 
\\stop animating activity indicator 
} 
\\else{ 
return the user error 
} 

si quelqu'un peut aider ce serait génial :)

+0

Est-ce que vous l'action asynchrone? Parce que si c'est vous devez arrêter l'animation dans votre callback. –

+0

j'utilise asihttp et c'est juste une demande syncroneous ... peut-être si je le change en async cela fonctionnera .. – MrPink

Répondre

10

il assez simple avant ... créer un prise et connectez dans le générateur d'interface ..

@property(nonatomic, retain) IBOutlet UIActivityIndicatorView *activityIndicator; 

dans la mise en œuvre il suffit d'utiliser ces deux méthodes pour démarrer et arrêter l'animation ...

[self.activityIndicator startAnimating]; 

et

[self.activityIndicator stopAnimating]; 
+0

merci c'était vraiment utile. Mais j'ai mis l'indicateur à caché .... donc il doit apparaître maintenant quand le bouton est pressé ... – MrPink

+3

l'indicateur d'activité a une propriété 'cache' quand il est placé 'sur' OUI '(ou' VRAI '). – lukya

+0

@MrPink Que diriez-vous de lire quelques tutoriels de base sur iOS et Objective C avant d'aller plus loin? – TheBlack

1

I J'ai eu des problèmes pour me cacher et montrer quand c'était dans la même méthode. En réglant la visibilité, il ne changera pas instantanément, mais seulement à la fin de la méthode. Donc, dans votre cas, il affichera l'indicateur (techniquement pas sur l'écran) faire des choses et ensuite le cacher à nouveau. Pour l'utilisateur, il n'apparaîtra jamais. Vous pouvez essayer d'effectuer l'action sur un thread d'arrière-plan, mais vous ne savez pas si le thread est suffisamment sûr. (Parce que généralement toutes les fonctions de dessin comme .hidden doivent se produire sur le thread principal)

[activityIndicator performSelectorInBackground:@selector(startAnimating) withObject:nil]; 
+0

vous dit que vous devez le définir visible alors vous auriez besoin d'envelopper une autre méthode autour de '[indicator setHidden: NO];' parce que 'YES' n'est pas un objet. Et puis appelez cette nouvelle méthode qui ne définit que la visibilité. –

0

place un indicateur d'activité avec l'aide du constructeur d'interface.

puis de faire une iboulet de cet indicateur.

IBoulet UIActivityIndicator *ac; 

ensuite déclarer la propriété et senthesize il

@property(nonatomic,retain) UIActivityIndicator *ac; 

dans la classe de mise en œuvre synethesize elle.

@synthesize ac; 

puis

[ac startAnimating]; 

et où tu veux arrêter

[ac stopAnimating]; 
Questions connexes