Domanda

Sto cercando di creare un jog wheel in un'applicazione iPhone / iPad. So che è possibile creare una sottoclasse UIGestureRecognizer per scrivere i propri sistemi di riconoscimento. Qualcuno sa come (soprattutto la matematica dietro di esso) per creare uno che avrebbe rilevare un movimento circolare, forse in combinazione con un gesto pan?

Grazie

È stato utile?

Soluzione

questa domanda non è facile. Alcuni li spendo tempo pensando a una possibile soluzione:
Penso che quello che vi serve sono alcune proprietà chiave è necessario impostare:

  • Il centro del movimento circolare (in questo caso non è un problema, perché si conosce il centro della jog wheel)
  • Un corridoio in cui il movimento dovrebbe accadere.
    • quindi è necessario il raggio interno e il raggio esterno.

Ora avete qualcosa di simile (purtroppo non ho abbastanza reputazione in modo che solo il link: http://img17.imageshack.us/img17/4416/bildschirmfoto20100721u.png

Ora la matematica alla base di questo inizio:
Prima di tutto ad organizzare il corridoio in quattro quarti:

  • Da 0 ° a 90 °
  • Da 90 ° a 180 °
  • da 180 ° a 270 °
  • 270 ° a 360 °

Per ogni trimestre si deve capire quando il dito è in movimento (diciamo che la 0 ° -line è dal punto centrale dritto verso l'alto):

  • se il dito è nel primo trimestre a sapere se la x passa a sinistra che la rotazione deve essere in senso antiorario. Se la x passa a destra la rotazione deve essere in senso orario.

applicare questa logica per tutti i trimestri. Ora sapete se la ruota jog viene spostato in senso orario o antiorario. Bisogna fare in modo, che il dito non è mai lasciando il corridoio (se si prova questa logica e il movimento si arresta a causa di lasciare il corridoio, rendono il corridoio più grande - Grazie a CrystalSkull per il suo commento: Usare 44px come una larghezza minima per la corridoio per applicare le Human Interface Guidelines).

Sumary
Così ora si può concludere che è necessario un punto centrale e un corridoio il dito può muoversi in. Dovete capire che nel quarto dito è dentro e scoprire (utilizzando il valore x) se la rotazione è in senso orario o anti-orario.

Spero che questo ti aiuta un po '.

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