Desenvolvimento do iPhone - restrinja a interação do usuário com o aplicativo e mostre um indicador de progresso
-
22-07-2019 - |
Pergunta
Eu tenho um caso em que retiro informações de um servidor. Meu aplicativo possui uma barra de guias e botões de navegação. Quero que o aplicativo mostre um indicador de progresso e desative todos os outros controles para que o usuário não possa pular enquanto os dados estão sendo retirados do servidor. Como posso conseguir isso?
Uma abordagem que tenho em mente é mostrar uma visão transparente com uma janela de progresso (bem como a janela de alerta de mensagem - que permite ao usuário interagir apenas com a janela de alerta de mensagens). Preciso de ajuda para implementar essa abordagem.
Atualmente, quando as informações/dados estão sendo extraídos do servidor, adiciono uma View Uiactivity ao subview e começo a animá -los. Mas isso não restringe o usuário de navegar para outras partes do aplicativo.
Solução
Stephan sugeriu o uso do UIALERTVIEW com UIPROGRESSVIEW ou UIACTIVIDADEIDICATATERVEW. Essa solução funcionou para mim, mas, como discutido com alguns dos outros membros da comunidade de desenvolvedores de iPhone, essa abordagem não é recomendada.
A abordagem recomendada é usar uma nova visualização e definir seu valor de transparência como Alpha 7 ou 8, definir seu plano de preto e adicionar uiprogressview ou uiactivityIndicatorView nesta visualização e usar essa nova visualização para mostrar progresso. Nenhum hack está envolvido no uso dessa técnica. Enquanto, na adição de uiactivityIndicatorView a um UIALERTVIEW, você está realmente executando uma operação não documentada (que não é recomendada).
Obrigado.
Outras dicas
Basta criar um uialertview sem botões, ele impedirá qualquer interação do usuário.
Você pode adicionar um UIPROGRESSVIEW ou UIACTIVIDADEIDICATATERVIEW ao seu alerta, se desejar.