2

J'ai une application de barre d'onglets. J'ai 2 questions.iOS - Afficher UIActivityIndicatorView lors du chargement de la table

  • En utilisant une image par défaut pour l'application ne qui permettent l'application s'initialiser (la première vue qui est montré dans MainView.xib) en arrière-plan tout en l'image est affichée? En appuyant sur le deuxième onglet de l'application , l'application charge les données dans un UITableView. Cette prend un certain temps (aller chercher des données de l'Internet) donc en passant du premier onglet au deuxième onglet il y a un délai avant que la table soit montré dans le deuxième onglet. Je veux un affichage UIActivityIndicatorView en la UITableView est peuplée d'être et que vous souhaitez le UIActivityIndicatorView Disparaître lorsque le UITableView est terminé chargement. Comment puis-je atteindre cet objectif?

+0

J'ai ajouté le code objectif-c. – Manuel

+0

Si ma réponse était la bonne, veuillez marquer comme réponse :) – Manuel

Répondre

3
  1. OUI. Même si vous ne donnez aucune image par défaut, il chargera le premier contrôleur de vue affichant un écran noir.

  2. Afficher l'affichage de l'indicateur d'activité dans le deuxième affichage du contrôleur loadView. Et, mettre tout le code de chargement dans votre deuxième méthode de contrôleurs de vue viewDidAppear:. En faisant cela, votre deuxième contrôleur de vue sera affiché avec l'affichage de l'indicateur d'activité dès que vous appuyez sur le deuxième onglet. Et après le chargement est terminé, rejeter l'indicateur d'activité. Cela vous donnera une transition en douceur d'un onglet à l'autre.

+0

Merci pour votre réponse. Pouvez-vous s'il vous plaît exemples avec un code? –

10

Vous pouvez utiliser ceci à l'intérieur de l'activité:

protected Dialog onCreateDialog(int id) { 
     ProgressDialog progress = new ProgressDialog(this); 
     progress.setMessage("The information is gathered, one moment please."); 
     progress.setIndeterminate(true); 
     progress.setCancelable(false); 
     progress.setCanceledOnTouchOutside(false); 
     return progress; 
} 

Cela montrera l'activité une alerte une fois que vous appelez ce (ou sur):

showDialog(0x0001); 

Lorsque la boîte de dialogue a pour disparaître appeler ceci:

removeDialog(0x0001); 

EDIT

maintenant pour Objective-C:

UIAlertView alert = [UIAlertView initWithTitle:@"a title" message:@"a message" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil] 
[alert show]; 

if(alert != nil) { 
     UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 

     indicator.center = CGPointMake(alert.bounds.size.width/2, alert.bounds.size.height-45); 
     [indicator startAnimating]; 
     [alert addSubview:indicator]; 
     [indicator release]; 
} 

EDIT L'enlever est fait avec ceci:

[alert dismissWithClickedButtonIndex:0 animated:YES]; 
[alert release]; 

/EDIT

Cela a fonctionné pour moi :) il pourrait être son pas tout à fait sur becou J'ai changé quelques trucs dans le navigateur pour maintenant les secrets de la compagnie, etc xD :). N'hésitez pas à poser des questions à ce sujet.

+0

Merci, mais cette question concerne Objective-C en général et iOS en particulier (pas Android). –

+0

oh je suis désolé, j'ai ouvert le mauvais projet, pas même le mauvais OS ... mal vous donner une version de travail ios dans un instant. – Manuel

+0

Merci !, alors comment savez-vous dans le code lorsque le UITableView (dans mon cas a fini de charger les données afin que vous puissiez rejeter le UIActivityIndicatorView?) –

Questions connexes