Как не обрабатывать анимацию с помощью UITableView selectRowAtIndexPath: animated: YES? - PullRequest
0 голосов
/ 19 декабря 2010

Я использую selectRowAtIndexPath UITableView: animated: scrollPosition, чтобы сдвинуть некоторые из моих UITableViewCell на место, когда пользователь выбирает их.Когда анимация завершится, я хочу отобразить некоторые дополнительные метаданные поверх ячейки.Проблема в том, что я не могу найти способ определить, будет ли UITableView на самом деле прокручиваться, чтобы можно было вызывать мою процедуру рисования метаданных (в scrollViewDidEndScrollingAnimation).Если позиция ячейки находится именно там, где она должна быть, когда пользователь выбирает ее, анимация не требуется, и scrollViewDidEndScrollingAnimation никогда не вызывается.Есть ли простой способ определить , если UITableView не нужно прокручивать, или мне нужно выполнять все эти вычисления вручную во время вызова selectRowAtIndexPath?Я не могу не думать, что мне не хватает простого способа сделать это определение.

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

1 Ответ

1 голос
/ 19 декабря 2010

Одним из способов является использование замедленной производительности. Сохранить текущий contentOffset. Сделайте выбор с помощью selectRowAtIndexPath:animated:scrollPosition:, а затем сразу же наберите performSelector:withObject:afterDelay: с очень небольшой задержкой (скажем, 0,1). В методе, который вы вызываете с помощью performSelector:..., запросите текущий contentOffset еще раз. Если это не изменилось, я думаю, вы можете предположить, что это не произойдет - мы не будем прокручивать! Таким образом, вы можете приступить к отображению метаданных прямо сейчас. Если он изменился, ничего не делайте, и пусть ваш scrollViewDidEndScrollingAnimation позаботится об этом.

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

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