2009-01-15 13 views
6

J'ai un cas où je tire des informations d'un serveur. Mon application a à la fois une barre d'onglets et des boutons de navigation. Je souhaite que l'application affiche un indicateur de progression et désactive toutes les autres commandes afin que l'utilisateur ne puisse pas sauter pendant que les données sont extraites du serveur. Comment puis-je atteindre cet objectif? Une approche que j'ai en tête est d'afficher une vue transparente avec une fenêtre de progression (comme la fenêtre d'alerte de message - qui permet à l'utilisateur d'interagir avec la fenêtre d'alerte de message seulement). J'ai besoin d'aide pour mettre en œuvre cette approche.Développement iPhone - restreindre l'interaction de l'utilisateur avec l'application et afficher un indicateur de progression

Actuellement, lorsque les informations/données sont extraites du serveur, j'ajoute un UIActivityView à la sous-vue et je commence à l'animer. Mais cela n'empêche pas l'utilisateur de naviguer vers d'autres parties de l'application.

Répondre

6

Stephan a suggéré l'utilisation de UIAlertView avec UIProgressView ou UIActivityIndicatorView. Cette solution a fonctionné pour moi, mais comme discuté avec certains des autres membres de la communauté des développeurs iPhone, cette approche n'est pas recommandée. L'approche recommandée consiste à utiliser une nouvelle vue et à définir sa valeur de transparence sur alpha 7 ou 8, à définir son arrière-plan sur noir et à ajouter UIProgressView ou UIActivityIndicatorView dans cette vue et utiliser cette nouvelle vue pour afficher la progression. Aucun hack n'est impliqué dans l'utilisation de cette technique. En revanche, si vous ajoutez UIActivityIndicatorView à un UIAlertView, vous effectuez réellement une opération non documentée (ce qui n'est pas recommandé).

Merci.

1

Il suffit de créer un UIAlertView sans boutons, cela empêchera toute interaction de l'utilisateur.

Vous pouvez ajouter un UIProgressView ou un UIActivityIndicatorView à votre alerte si vous le souhaitez.