Animação do iPhone com base nos valores de entrada (toques) e não no tempo

Para um efeito de animação perfeitamente adequado a uma abordagem de grupo de animação, como mostrado emA resposta de Brad Larson aqui, Preciso que a animação continue de acordo com as entradas. Especificamente, toque e posição dos toques detectados. É fácil manipular touchesMoved: e definir a posição dos elementos para cada toque, mas simplesmente não é suave como a abordagem de animação principal.

Imagine um mármore em uma trilha com sulcos. Quero empurrar o mármore para qualquer posição, a qualquer velocidade, em uma direção ou outra. A animação precisa fazer algo assim, movendo um elemento visual ao longo de um caminho em resposta a toques. CAKeyframeAnimation tem o bit do caminho exatamente, mas parece sempre querer basear a transição de um quadro para outro no tempo decorrido, não em nenhum outro fator e em uma direção.

Atualização de 31 de janeiro - Obrigado a todos pelas respostas até agora, mas nenhuma está realmente resolvendo o problema. Eu tenho um menu circular que é arrastado para selecionar uma opção. Tudo isso precisa se mover juntos, e eu trabalhei em torno dele usando uma vista que possui uma transformação rotacional aplicada e a transformação rotativa inversa aplicada a suas sub-visões, para que todos os ícones girem com a orientação apropriada da roda gigante. Parece realmente melhor quando os ícones são animados ao longo de um caminho ligeiramente ovóide ... a descrição em mármore é uma tentativa de deixar claro o que estou tentando fazer. Melhor talvez imaginar ímãs orientados a repelir todos os que viajam em um sulco - mova um e seus vizinhos também, mas não necessariamente na direção em que o ímã arrastado se move à medida que o caminho se curva.

No momento, o problema é seguir um caminho simples criado com um círculo, mas eu realmente gostaria de saber como animar objetos ao longo de um caminho arbitrário, posição controlada puramente pelo toque, sem cálculos envolvendo velocidade ou direção.

questionAnswers(5)

yourAnswerToTheQuestion