Какой лучший способ показать пользователю, что что-то загружается на iPhone? - PullRequest
1 голос
/ 05 октября 2009

Недавно я искал способ показать пользователю, что что-то загружается. Я уверен, что кто-нибудь с iPhone раньше видел это приложения, но как лучше всего это сделать?

Я начал использовать UIProgressHUD , однако мне было отмечено, что вам не следует использовать частные (недокументированные) API.

Затем я перешел на эту , которая представляет собой пользовательскую версию MBProgressHUD, однако, по моему опыту, она не отображает загрузочную часть при попытке вызвать ее не с кнопки, и я нашла ее очень глючный (разбить пример кода, приведенного простым щелчком мыши, было не сложно).

Затем я нашел это Джеймсом Браннаном из его книги, однако я не совсем уверен, почему он утверждает, что это "правильный способ" сделать это, когда я видел много приложений в прошлом с тем, что выглядит как UIProgressHUD.

У кого-нибудь есть идеи?

РЕДАКТИРОВАТЬ: Это очень хорошо ...

Спасибо

Ответы [ 2 ]

2 голосов
/ 06 октября 2009

Если вы говорите о загрузке по сети, для начала стоит включить индикатор активности сети в строке состояния:

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

Обратите внимание, что вы должны установить его на NO, когда вы закончите! Это должно использоваться только для указания сетевой активности.

Это немного неуловимо, но неплохо иметь какой-то индикатор прогресса ЕСЛИ вы можете точно сказать, сколько времени займет что-то - загрузка, где вы знаете размер и подсчет входящих байтов, или загрузки, где вы также отслеживаете исходящие байты и знаете общий размер.

Если длина вашего вызова очень мала или размер на самом деле неизвестен (отличный пример - вызов веб-службы), тогда какое-то наложение с UIActivityIndicator может быть очень расслабляющим (вы также можете создать собственный вариант с набором изображения добавлены в представление UIImage для анимации). Ключевым моментом является то, что, по возможности, он не должен блокировать пользователя от других действий, если это возможно.

Также, если у вас происходит несколько вещей, вы можете добавить сообщения, описывающие ваше состояние (например, «настройка изображения», «загрузка изображения» и т. Д.).

2 голосов
/ 05 октября 2009

Нет ни одного "лучшего" способа. Другой способ сделать это - просто поместить UIView поверх подпредставлений основного вида, отметить его свойство userInteraction и выделить его серым цветом при необходимости. Вы даже можете добавить UIActivityIndicator в качестве подпредставления этого "переднего плана" UIView, запуская его анимацию при необходимости. Когда загрузка завершится, спрячьте / остановите индикатор активности и очистите цвет переднего плана.

...