2016-04-19 2 views
0

Dans mon application, j'ai un UIButton et lorsque vous le tapotez, j'ai un UIActivityIndicatorView et je veux ajouter différents UI Labels pendant le chargement. Ce n'est pas un vrai processus de chargement, c'est juste pour les regards. Comment ferais-je cela?Processus de chargement - Différents UILabels

Répondre

0

Étape 1:

Créer un UIView personnalisé (u peut xibs si vous voulez). Cette vue devrait avoir un deuxième UIView en tant que conteneur. Lorsque vous initialisez la vue, réglez-la sur la même taille que le viewController dans lequel vous l'insérez. Sa couleur d'arrière-plan est transparente (ou noire avec un alpha inférieur si vous voulez avoir l'effet grisé). Définissez le conteneur à la taille réelle que vous souhaitez qu'il apparaisse.

Étape 2:

Mettez un UIActivityIndicatorView et un UILabel dans le récipient. Disposez comme vous aimez.

Étape 3:

Ecrivez une méthode de mise à jour de l'étiquette qui utilise une minuterie. Soit performSelector: afterDelay: ou dispatch_after. Avoir cette méthode définir le texte de l'étiquette, attendre une période de temps, modifier puis texte, attendre une période de temps, le modifier à nouveau et ainsi de suite.

Étape 4:

Ecrire showIndicator() et hideIndicator(). La vue et la propriété cachée du conteneur doivent être définies sur true. Lorsque showIndicator() est appelé, définissez hidden to false et appelez la méthode de mise à jour de l'étiquette à partir de l'étape 3. Lorsque vous avez atteint la fin de toutes les modifications de libellés, replacez tout à hidden = true

Cela devrait fonctionner comme ceci . Le contrôleur de vue charge et ajoute cette vue. La vue occupe tout l'écran mais vous ne pouvez rien voir car elle est masquée par défaut. L'utilisateur appuie sur le bouton et la méthode showIndicator() est appelée. La vue devient visible. Bien qu'il occupe l'intégralité de l'écran, il apparaît comme une petite superposition car l'arrière-plan est transparent (ou de retour avec un alpha pour l'aspect grisé) et le conteneur a un cadre plus petit et une couleur unie. Les méthodes retardées sont également appelées maintenant et cela change l'étiquette, attend, change et ainsi de suite. Lorsque vous atteignez la fin de la séquence, hideIndicator() est appelée et toutes les vues sont redéfinies sur hidden = true. Bonne chance!!!