123 votes

Comment afficher l'indicateur de chargement dans la barre d'état supérieure ?

J'ai remarqué que certaines applications comme Safari et Mail affichent un indicateur de chargement dans la barre d'état (la barre située tout en haut du téléphone) lorsqu'elles accèdent au réseau. Existe-t-il un moyen de faire la même chose dans les applications SDK, ou est-ce un phénomène propre à Apple ?

5voto

Babu Lal Points 136

Vous devez également prendre soin de masquer l'indicateur d'activité une fois que votre appel réseau est terminé.

Si vous utilisez AFNetworking alors vous n'avez pas besoin de faire grand-chose.

Faites les changements suivants dans AppDelegate La classe :

  1. Importation AFNetworking/AFNetworkActivityIndicatorManager.h

  2. Mettez ça dans didFinishLaunchingWithOptions:

[[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES]

2voto

Sev Points 500

Il peut également être utile de s'assurer que vous l'exécutez sur le fil d'exécution principal car il est lié à l'interface utilisateur.

dispatch_async(dispatch_get_main_queue(), ^{
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
});

2voto

erickva Points 188

Comme beaucoup l'ont dit, il n'y a pas d'indicateur d'activité réseau pour l'iPhone X et probablement pour les autres nouveaux iPhones avec l'encoche.

Je suis tombé sur cette incroyable bibliothèque écrite par Ortwin Gentz, FutureTap : https://github.com/futuretap/FTLinearActivityIndicator

Il replace l'indicateur là où il était lors de la sortie initiale de l'iPhone X, beaucoup se souviendraient de l'indicateur de type Knight Rider.

Cette bibliothèque est disponible pour Swift 4.2, vous devrez donc modifier les paramètres du langage Swift, comme décrit ici : Le type 'NSAttributedStringKey' (aka 'NSString') n'a pas de membre 'font'.

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