Лучший способ отключить взаимодействие UIViewController и показать индикатор активности при загрузке данных из веб-службы или основных данных? - PullRequest
1 голос
/ 21 сентября 2011

Вопрос говорит сам за себя.

Есть ли лучший рецепт для отключения взаимодействия с пользователем и отображения индикатора активности при извлечении данных из веб-службы или загрузке данных из основной операции извлечения данных?

Я использую ASIHTTPRequest, JSONKit и Core Data в моем конкретном приложении, поэтому предпочтителен любой пример кода с использованием этих Apis.

Спасибо - РГ

Ответы [ 3 ]

7 голосов
/ 21 сентября 2011

Создайте UIView с прозрачным фоном, который занимает весь экран.

Он будет перехватывать взаимодействие и не позволит пользователю нажимать на другие элементы на экране.

Затемвы можете добавить UIActivityIndicator (и даже UILabel) в качестве подпредставления этого прозрачного полноэкранного представления или чего угодно.

Обратите внимание, что существует несколько существующих проектов, например SVProgressHUDкоторые уже делают это, и что я настоятельно рекомендую.

2 голосов
/ 21 сентября 2011

Очень простой и легкий способ решения обеих задач - MBProgressHUD.

Проверьте это хранилище в Github

Пример использования:

+ (MBProgressHUD *)showHUDAddedTo:(UIView *)view animated:(BOOL)animated;

+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated;

Эти два метода класса будут показывать / скрывать простой индикатор активности с прозрачным фоном. У этого также есть свойства, чтобы показать текст, прогресс и хорошего делегата.

1 голос
/ 03 декабря 2012

Используйте вышеупомянутый элемент управления HUD на rootViewContoller. Это не позволит пользователю взаимодействовать с пользовательским интерфейсом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...