Правильный способ использования UIActivityIndicatorView внутри UITableView при нажатии на ячейку - PullRequest
0 голосов
/ 15 июня 2011

У меня есть несколько вариантов:

  1. Поместите его слева, в cell.imageView.
  2. Поместите его справа, в cell.accesorryView
  3. Поместите его в tableView, поверх таблицы (выглядит очень некрасиво)
  4. Поместите его в tableView, покрывая всю таблицу оверлейным видом

Какой из них правильныйспособ сделать это?(Или у вас есть другие идеи?) Я не могу найти ссылку на это в руководстве по программированию табличного представления Apple.

Ответы [ 2 ]

2 голосов
/ 15 июня 2011

Вы не указали, хотите ли вы заблокировать весь доступ к приложению во время выполнения операции или просто хотите отключить tableView. Вот что я делал в прошлом, когда хотел заблокировать весь доступ к приложению:

  1. Отключить представление приложения.
  2. Добавьте новый вид сверху с черным фоном, но, возможно, с 0,6 альфа. Сделать это возможно 150x150 с закругленными углами.
  3. Добавьте UIActivityIndicatorView к черному виду в горизонтальном центре, но немного выше, чем в вертикальном центре.
  4. Добавьте метку для некоторого текста статуса, чтобы сообщить пользователю, что происходит.
  5. Когда фоновая задача завершена, удалите представление и снова включите представление приложения.

Это делает приятное "ожидание" пользователя.

РЕДАКТИРОВАТЬ: Вот код, который я использую, чтобы отключить приложение, пока процесс работает в фоновом режиме:

UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) {
    window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}

[window setUserInteractionEnabled:NO];

Добавлено из предложенного ОП редактирования:

Если по какой-то причине вышеуказанная техника не работает, другие обходные пути:

  1. Вызов setExclusiveTouch на вид, который вы используете, чтобы указать, что он загружается
  2. Позвонив на [[UIApplication sharedApplication] beginIgnoringEvents] и позже позвонив на [[UIApplication sharedApplication] endIgnoringEvents], когда мы закончили.
0 голосов
/ 15 июня 2011

Поскольку вы не переходите в другое представление, звучит так, будто вы можете либо добавить его в качестве вспомогательного вида, либо, если у вас есть панель навигации, вставить его туда.

Я бы не стал помещать его в imageView в любой ситуации, так как этот вид изображения больше подходит для изображения, связанного конкретно с содержимым ячейки.

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