Domanda

Ho un grafico a linee che ho disegnato in Quarzo e una 'bolla' di UIView che vorrei idealmente apparire quando l'utente tocca la singola linea della trama e ci sposta il dito lungo. La bolla mostra alcune informazioni aggiuntive sul grafico.

Mi piacerebbe "collegare" l'UIView alla trama di CGPath, ma ho difficoltà a capire concettualmente il modo migliore per farlo. So che puoi animare una vista lungo un CGPath, ma questo non sembra funzionare per me, perché l'utente ha bisogno di 'strofinare' lungo il grafico con il dito piuttosto che con qualsiasi animazione automatica.

Qualcuno ha qualche suggerimento su un buon approccio?

È stato utile?

Soluzione

Forse non è necessario animarlo. Gli eventi di tocco volano abbastanza rapidamente - forse se sposti semplicemente la vista nella posizione appropriata rispetto al tocco senza animazione, la mossa sarà abbastanza regolare. Se ciò non è abbastanza buono, dovrai animare lungo il segmento del grafico dalla posizione corrente della vista (vedi Layer presentazione CALayer) alla posizione desiderata. La chiave è che ti animerai ogni volta che ricevi un evento touch (e qualsiasi precedente animazione verrà cancellata).

Altri suggerimenti

Come ha detto Neil, la tua scommessa migliore è semplicemente spostarti con gli eventi touch, sembrerà liscio se tutto ciò che stai facendo è spostare una vista. Usa [aTouch locationInView: view] per ottenere la posizione del tocco, quindi trova il punto più vicino sul percorso (forse usa il valore x e cerca il valore y sul percorso per la x).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top