Разработка для iPhone — ограничить взаимодействие пользователя с приложением и показать индикатор прогресса.
-
22-07-2019 - |
Вопрос
У меня есть случай, когда я извлекаю информацию с сервера.В моем приложении есть панель вкладок и кнопки навигации.Я хочу, чтобы приложение показывало индикатор выполнения и отключало все остальные элементы управления, чтобы пользователь не мог прыгать, пока данные извлекаются с сервера.Как я могу добиться этого?
Один из подходов, который я имею в виду, - показать прозрачное представление с окном прогресса (очень похоже на окно оповещения о сообщении, которое позволяет пользователю взаимодействовать только с окном оповещения о сообщении).Мне нужна помощь в реализации этого подхода.
В настоящее время, когда информация/данные извлекаются с сервера, я добавляю UIActivityView в подпредставление и начинаю его анимировать.Но это не ограничивает пользователя в переходе к другим частям приложения.
Решение
Стефан предложил использовать UIAlertView с UIProgressView или UIActivityIndicatorView.Это решение сработало для меня, но, как обсуждалось с некоторыми другими членами сообщества разработчиков iPhone, этот подход не рекомендуется.
Рекомендуемый подход — использовать новое представление и установить для него значение прозрачности альфа 7 или 8, установить черный фон, добавить UIProgressView или UIActivityIndicatorView в это представление и использовать это новое представление для отображения прогресса.При использовании этой техники не требуется никаких хаков.Хотя в случае добавления UIActivityIndicatorView в UIAlertView вы фактически выполняете недокументированную операцию (что не рекомендуется).
Спасибо.
Другие советы
Просто создайте UIAlertView без кнопок, это предотвратит любое взаимодействие с пользователем.
Вы можете добавить UIProgressView или UIActivityIndicatorView к своему предупреждению, если хотите.