Mon application télécharge beaucoup de données, qui prend environ quelques secondes. Mon écran Splash s'affiche puis disparaît puis un écran blanc blanc apparaît pendant quelques secondes avant la charge de la première vue. Y a-t-il un moyen de garder l'écran éclabousseur apparaissant? Est-il normal de créer une vue dans l'Appdelegate et de le garder affiché jusqu'à ce que tout le chargement de données soit terminé et que la vue est sur le point de charger? P>
4 Réponses :
Oui, vous pouvez afficher une vue avec un écran de démarrage (et peut-être un indicateur d'activité, rappelez-vous simplement de charger vos données dans un thread séparé ou de tourner), puis de passer à la vue appropriée lorsque le chargement est fait. p>
Utilisez MbProgresshud Vous pouvez obtenir tout le code source ici.
https://github.com/jdg/ MbProgresshud P>
J'espère que cela vous aide. P>
Il s'agit d'une vue de chargement qui est indicateur d'activité. P>
EDIT: P>
You Peut ajouter votre vue d'arrière-plan dans la fenêtre pendant que vos données sont téléchargées en arrière-plan à l'aide de p> puis une fois que les données sont téléchargées, vous pouvez supprimer la même fenêtre et ajouter votre contrôleur d'affichage principal dans la fenêtre p> espère que cela vous aide. P> p>
Ouais j'utilisais déjà MbProgresshud. Devrais-je simplement afficher une image d'arrière-plan derrière l'indicateur d'activité? Donc, je créerais une vue avec une image dans l'Appdelegate, collez-la sur le dessus et retirez-la lorsque la vue est sur le point de charger. Est-ce une bonne solution?
Non, ce n'est pas nécessaire, mais minimiser le temps pour lequel l'utilisateur doit attendre en effectuant une récupération de données de manière asynchrone. J'espère que cela vous aide :)
Merci pour votre réponse. Oui, je télécharge des données asynchrone. Mais le ProgressHud a l'air assez moche sur un fond blanc pendant quelques secondes, c'est pourquoi je veux coller un bon fond pendant quelques secondes. Quelque chose de simple.
Il est également possible d'afficher l'arrière-plan, vous pouvez afficher un bon arrière-plan si vous le souhaitez.
Ouais ça irait bien. Vous pouvez ajouter une vue sur Appdelegate directement dans la fenêtre sous forme de sous-vision à la fenêtre et une fois que les données sont téléchargées, vous pouvez supprimer la vue avec l'arrière-plan de la fenêtre à l'aide de supprimerfromsuperview code>, puis vous pouvez ajouter votre ViewController avec vos données. dans la fenêtre comme sous-vision. De cette façon, cela serait beau et innovant. J'espère que cela vous aide :)
Merci :) Je vais vous marquer comme la bonne réponse dès que je peux dans environ 3 minutes.
Vérifiez la section Modifier B> de ma réponse.
@NAYEFC: Hey Nayefc merci que vous avez aimé ma réponse. Si vous avez votre réponse, veuillez le marquer comme correct.
Je charge une image d'image avec une image par défaut dans la fenêtreDiDload et le masquez si vous avez précédé les données.
UIImage* imageDefault = [UIImage imageNamed:@"Default@2x.png"]; CGRect frame; frame.origin.x = 0; frame.origin.y = -20; frame.size.width = 320; frame.size.height = 480; splash = [[[UIImageView alloc] initWithFrame:frame] autorelease]; [splash setImage:imageDefault]; [self.view addSubview:splash]; . . splash.hidden=YES;
La vue blanche que vous voyez avant que la vue est la vue principale. Sinply Définissez l'image Splash comme image d'arrière-plan de votre fenêtre dans le MainWindow.xib, et vous avez terminé. En option, vous pouvez également ajouter une spinner qui tourne toujours sur la fenêtre, de sorte que lorsque votre application se charge, vous voyez d'abord l'écran SPLASH, puis l'écran SPALSH avec la fileuse puis votre vue apparaît. P>
À mon avis, vous devez charger ces données en arrière-plan si possible et laissez l'interface utilisateur être réactif.
@Nayefc: +1 pour une bonne question :)
@dasdom Ouais je peux faire cela - en utilisant Multhreading et GCD, mais l'interface utilisateur n'a rien à afficher sans les données. De plus, cela ne se produit que sur le lancement initial de l'application, donc je montrerai probablement un indicateur d'activité agréable avec des antécédents.