J'ai remarqué que certaines applications comme Safari et Mail affichent un indicateur de chargement dans la barre d'état (la barre 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 une seule chose d'Apple?
ios
cocoa-touch
rouille
la source
la source
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
// en one linerUIApplication.sharedApplication().networkActivityIndicatorVisible = true
J'ai trouvé les macros suivantes très utiles!
Vous pouvez donc simplement appeler
ShowNetworkActivityIndicator();
ouHideNetworkActivityIndicator();
depuis votre application (tant que l'en-tête est inclus bien sûr!).la source
J'ai écrit un singleton qui résout le problème des connexions multiples en gardant un compteur de ce qui se passe (pour éviter de supprimer l'état lorsqu'une connexion revient mais qu'une autre est toujours active):
Le fichier d'en-tête:
et mise en œuvre:
Exemple:
la source
Un code sur une seule ligne pour ce faire:
la source
Vous devez prendre soin de masquer l'indicateur d'activité également une fois votre appel réseau terminé.
Si vous utilisez
AFNetworking
, vous n'avez pas besoin de faire grand-chose.Effectuez les modifications suivantes en
AppDelegate
classe:Importer
AFNetworking/AFNetworkActivityIndicatorManager.h
Mettez ça dans
didFinishLaunchingWithOptions:
[[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES]
la source
L'indicateur d'activité du réseau de la barre d'état était obsolète dans iOS 13 .
L'utilisation
UIApplication.shared.isNetworkActivityIndicatorVisible = true
ne fonctionnera plus.Le message d'obsolescence dit:
la source
Il peut également être utile de vous assurer que vous l'exécutez sur le thread principal car il est lié à l'interface utilisateur.
la source
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 remet l'indicateur là où il était lorsque l'iPhone X a été initialement publié, beaucoup se souviendraient du type d'indicateur Knight Rider.
Cette bibliothèque est disponible pour Swift 4.2, vous devrez donc modifier les paramètres de Swift Language, comme décrit ici: Tapez 'NSAttributedStringKey' (aka 'NSString') n'a pas de 'police' de membre
la source