2010-04-14 2 views
0

В моем приложении для iPhone я пытаюсь получить красные и белые полосы, которые прокручиваются по экрану, чтобы плавно анимировать, когда скорость полос становится высокой. В моем приложении пользователь запускает анимацию и изменяет скорость прокрутки пальцем и изменяет ширину полос двумя пальцами. Анимация останавливается в ответ на двойной кран. Если скорость становится высокой или полосы становятся узкими, анимация перестает быть гладкой к глазу. Кажется, что края полос прыгают.отрывистая анимация с использованием Core Animation

Анимация проста. Я рисую полосы в слое, который немного больше экрана. Затем я настроил анимацию, которая перемещает позицию слоя точно на расстояние от одной красной полосы до следующей. Продолжительность устанавливается с помощью скорости прокрутки пальца, а количество повторений - 1. Когда анимация останавливается, делегат проверяет флаг, чтобы увидеть, хочет ли пользователь остановить прокрутку. Если нет, анимация снова запускается за один цикл. Есть ли лучшие способы сделать это, чтобы анимация была гладкой на высоких скоростях или с узкими полосками?

Thanks--

ответ

1

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

Зафиксировать тогда было бы увеличить расстояние, покрываемое каждой анимацией, поскольку полосы становятся узкими. Итак, вместо оживления от одной красной полосы к следующей, вы оживляете n-й. Если вы увеличите n, когда полосы станут меньше, вы сможете поддерживать анимацию в секунду примерно стабильно.

С точки зрения анимации в секунду, увеличение скорости аналогично сужению полос. Таким образом, исправление одинаков: по мере увеличения скорости увеличьте n.

+0

Блестящая идея! Есть ли у вас какое-либо представление о том, как определяется частота кадров и интерполяция для анимации? Если бы я знал, что могу сделать алгоритм, который бы поддерживал частоту кадров и низкий –

Смежные вопросы