2013-06-08 3 views
0

Обновление: на самом деле это было так просто, как не анимировать элемент пользовательского интерфейса при использовании касаний. Он отлично следует за штрихами теперь без запаздывания.CABasicAnimation speed - Сохранение пользовательского ввода

В настоящее время я пытаюсь реализовать функцию пользовательского интерфейса, реализуя подкласс CALayer внутри подкласса UIView. Я получаю события касания в пользовательском контроллере представления UIVIew, уведомляю UIView о касаниях, который, в свою очередь, уведомляет CALayer, чтобы анимировать элементы пользовательского интерфейса, нарисованные на этом слое.

Все работает, но я заметил, что когда происходит большая дельта в движении (как при быстрой прокрутке пальца), CABasicAnimation отстает. В идеале я хочу, чтобы анимация оставалась идеально совмещенной с пальцем пользователя.

Я придумал Hacky способом просто установив скорость анимации в произвольно высокой, как в

anim.speed = 10.0f; 

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

Спасибо за любую помощь!

+0

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

ответ

1

Вы пытались просто отключить анимацию во время всего жеста? Я вообще не анимация во время непрерывных жестов, но будет просто анимировать, когда я отпущу (например, привязать его к правильному месту). Обычно достаточно сенсорных событий, что вы все равно получаете супер-гладкий интерфейс во время непрерывного движения без каких-либо задержек анимации.