Percebi que alguns aplicativos como Safari e Mail mostram um indicador de carregamento na barra de status (a barra na parte superior do telefone) quando eles estão acessando a rede. Existe uma maneira de fazer a mesma coisa nos aplicativos SDK ou isso é apenas uma coisa da Apple?
ios
cocoa-touch
enferrujado
fonte
fonte
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
// como um linerUIApplication.sharedApplication().networkActivityIndicatorVisible = true
Eu achei as seguintes macros bastante úteis!
Assim, você pode simplesmente ligar
ShowNetworkActivityIndicator();
ouHideNetworkActivityIndicator();
de dentro do seu aplicativo (desde que o cabeçalho esteja incluído, é claro!).fonte
Escrevi um singleton que resolve o problema de várias conexões mantendo um contador do que está acontecendo (para evitar a remoção do status quando uma conexão retorna, mas outra ainda está ativa):
O arquivo de cabeçalho:
e implementação:
Exemplo:
fonte
Um único código de linha para fazer isso:
fonte
Você também deve ocultar o indicador de atividade assim que sua chamada de rede for concluída.
Se você usa
AFNetworking
, não precisa fazer muito.Faça as seguintes alterações na
AppDelegate
classe:Importar
AFNetworking/AFNetworkActivityIndicatorManager.h
Coloque isso em
didFinishLaunchingWithOptions:
[[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES]
fonte
O indicador de atividade de rede da barra de status foi descontinuado no iOS 13 .
Usar
UIApplication.shared.isNetworkActivityIndicatorVisible = true
não funcionará mais.A mensagem de descontinuação diz:
fonte
Também pode ser útil verificar se você o está executando no thread principal, pois está relacionado à interface do usuário.
fonte
Como muitos já disseram, não há indicador de atividade de rede para o iPhone X e provavelmente para os outros novos iPhones com o entalhe.
Me deparei com esta incrível biblioteca escrita por Ortwin Gentz, FutureTap: https://github.com/futuretap/FTLinearActivityIndicator
Ele coloca o indicador de volta onde estava quando o iPhone X foi lançado, muitos se lembrariam do tipo de indicador Knight Rider.
Esta biblioteca está disponível para o Swift 4.2, portanto, você precisará alterar as configurações do idioma do Swift, conforme descrito aqui: Digite 'NSAttributedStringKey' (também conhecido como 'NSString') não possui membro 'font'
fonte