Как узнать, когда движется строка - PullRequest
1 голос
/ 17 августа 2010

Мое приложение позволяет пользователю переупорядочивать строки в табличном представлении, но я хочу reloadData после того, как перемещение сделано, чтобы что-то изменить (добавить текст в первую строку).

Я попытался reloadData в методе moveRowAtIndexPath:, но это приводит к зависанию приложения, поскольку этот метод вызывается много раз (в зависимости от количества строк, которое необходимо переместить), а представление таблицы перезагружается много раз.

Итак, я просто хочу знать, когда закончится движение, тогда я reloadData всего за один раз. Кто-нибудь знает об этом? Пожалуйста, помогите мне. Большое вам спасибо!

Ответы [ 2 ]

1 голос
/ 17 августа 2010
- (void)doReload
{
  [myTable reloadData];
}

Вы можете сделать [self performSelector:selector(doReload) withObject:nil afterDelay:0.1] в методе moveRowAtIndexPath, но вы не можете вызвать [myTable reloadData] напрямую, потому что, как вы обнаружили, это вызывает цикл. По сути, вам нужно позволить завершить манипулирование таблицей и цикл выполнения, чтобы обойти вызов вашего метода, который затем вызывает перезагрузку таблицы. Это немного взломать, но это работает хорошо. Обычно вам не нужно reloadData на данный момент, но вы можете пытаться сделать что-то необычное.

0 голосов
/ 17 августа 2010
-(int)table:(UITable*)table movedRow: (int)row toRow: (int)dest
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...