13 votes

Comment créer un indicateur d'activité au milieu de la vue de manière programmatique ?

Je travaille avec une application qui analyse un flux en ligne. Lorsque je clique sur le bouton d'actualisation, il faut un certain temps pour analyser à nouveau le fichier et afficher ses données. Je veux un indicateur d'activité au milieu de la vue lorsque je clique sur le bouton de rafraîchissement. Et lorsque l'analyse est terminée, cet indicateur doit disparaître.

J'utilise ce code mais il ne fonctionne pas :

- (IBAction)refreshFeed:(id)sender
{
   UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
   [self.view addSubview:spinner];

   [spinner startAnimating];

   // parsing code code

   [spinner release];
}

1voto

iphondroid Points 498

Ajoutez ce code avant de commencer votre tâche :

UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[self.view addSubview:spinner];
[spinner setFrame:CGRectMake((self.view.frame.size.width/2)-(spinner.frame.size.width/2), (self.view.frame.size.height/2)-(spinner.frame.size.height/2), spinner.frame.size.width, spinner.frame.size.height)];
[spinner startAnimating];    

Après l'achèvement de la tâche, ajoutez :

[spinner stopAnimating];

1voto

En Swift, ceci a fonctionné pour mon application

let activity_view = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray)
activity_view.frame =  CGRectMake(0.0, 0.0, 40.0,40.0)
activity_view.center = self.view.center
self.view.addSubview(activity_view)
activity_view.bringSubviewToFront(self.view)
activity_view.startAnimating()

0voto

Swastik Points 1861
/ create activity indicator 
activityIndicator = [[UIActivityIndicatorView alloc] 
    initWithFrame:CGRectMake(0.0f, 0.0f, 20.0f, 20.0f)];
[activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];

...
 [self.view addSubview:activityIndicator];
// release it
[activityIndicator release];

Une meilleure approche consisterait à ajouter un indicateur sur le xib et à le masquer/démasquer en fonction de vos besoins.

0voto

xxcv Points 331
spinner.center = self.view.center;

Pour afficher le spinner depuis le rootController, essayez :

[self.navigationController.visibleViewController.view addSubview:spinner];

o

[self.navigationController.view addSubview:spinner];

0voto

7KV7 Points 19750

Essayez comme ceci

activityIndicator.center = CGPointMake(160,240);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X