Анимация iPhone на основе входных значений (касаний), а не времени

Для эффекта анимации, идеально подходящего для группового подхода, как показано в Ответ Брэда Ларсона здесь , мне нужно, чтобы анимация продолжалась в соответствии с вводом. Конкретно касание и положение обнаруженных касаний. С touchMoved: легко обрабатывать и устанавливать положение элементов для каждого касания, но это не так гладко, как при использовании базовой анимации.

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

Обновление от 31 января - Спасибо всем за ответы, но ни один из них не решает проблему. У меня есть круглое меню, которое перетаскивают, чтобы выбрать вариант. Все это должно перемещаться вместе, и я работал над этим, используя представление, к которому применено вращательное преобразование и обратное вращательное преобразование, примененное к его подпредставлениям, так что все значки вращаются с соответствующей ориентацией колеса обозрения. Это действительно выглядит лучше, когда значки анимированы по слегка овальной траектории ... описание мрамора - это попытка прояснить, что я пытаюсь сделать. Лучше, пожалуй, представить себе магниты, ориентированные так, чтобы отталкивать всех движущихся по канавке - переместите один, и его соседи тоже будут двигаться, но не обязательно в том направлении, в котором перемещается магнит по кривой траектории.

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

12
задан Community 23 May 2017 в 12:30
поделиться