He notado que algunas aplicaciones como Safari y Mail muestran un indicador de carga en la barra de estado (la barra en la parte superior del teléfono) cuando acceden a la red. ¿Hay alguna forma de hacer lo mismo en las aplicaciones SDK, o es solo una cosa de Apple?
ios
cocoa-touch
estantería oxidada
fuente
fuente
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
// como una sola líneaUIApplication.sharedApplication().networkActivityIndicatorVisible = true
¡He encontrado las siguientes macros bastante útiles!
Por lo tanto, puede llamar
ShowNetworkActivityIndicator();
oHideNetworkActivityIndicator();
desde su aplicación (¡siempre que el encabezado esté incluido, por supuesto!).fuente
Escribí un singleton que resuelve el problema de las conexiones múltiples manteniendo un contador de lo que está sucediendo (para evitar eliminar el estado cuando una conexión regresa pero otra aún está activa):
El archivo de encabezado:
e implementación:
Ejemplo:
fuente
Un código de una sola línea para hacer eso:
fuente
Debe encargarse de ocultar el indicador de actividad también una vez que finalice la llamada de red.
Si lo usa
AFNetworking
, entonces no necesita hacer mucho.Haga los siguientes cambios en la
AppDelegate
clase:Importar
AFNetworking/AFNetworkActivityIndicatorManager.h
Pon esto en
didFinishLaunchingWithOptions:
[[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES]
fuente
El indicador de actividad de la red de la barra de estado quedó obsoleto en iOS 13 .
El uso
UIApplication.shared.isNetworkActivityIndicatorVisible = true
ya no funcionará.El mensaje de desaprobación dice:
fuente
También puede ser útil asegurarse de que lo está ejecutando en el hilo principal, ya que está relacionado con la interfaz de usuario.
fuente
Como muchos han dicho, no hay un indicador de actividad de red para el iPhone X y probablemente para los otros iPhones nuevos con la muesca.
Me encontré con esta increíble biblioteca escrita por Ortwin Gentz, FutureTap: https://github.com/futuretap/FTLinearActivityIndicator
Vuelve a colocar el indicador donde estaba cuando se lanzó inicialmente el iPhone X, muchos recordarían el tipo de indicador Knight Rider.
Esta biblioteca está disponible para Swift 4.2, por lo que deberá cambiar la configuración de Swift Language, como se describe aquí: Escriba 'NSAttributedStringKey' (también conocido como 'NSString') no tiene miembro 'fuente'
fuente