Come si implementano i gesti di pizzicamento su iPhone? Ho familiarità con l'utilizzo di eventi touch sull'iPhone, ma sono estremamente pigro e non voglio re-inventare la ruota per qualcosa di così diffuso come i gesti PINCH ... Il codice sorgente oi collegamenti ad esso sarebbero utili.Come fare gesti di pizzicamento su iPhone?
risposta
È necessario implementarlo manualmente utilizzando alcuni calcoli di base.
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
Questi sono i metodi delegati che è necessario implementare nella propria applicazione.
È necessario ottenere la distanza tra i due tocchi, quindi calcolare le variazioni di distanza nel proprio codice.
L'equazione matematica che si utilizza per ottenere la distanza è chiamata dot product
Voglio solo far notare che l'equazione che usano nel tutorial citato non è corretto. L'ho aggiornato per includere il valore assoluto che è mancato nel tutorial.
Questo è il prodotto scalare:
- (CGFloat)distanceBetweenTwoPoints:(CGPoint)fromPoint toPoint:(CGPoint)toPoint
{
float xDist = fromPoint.x - toPoint.x;
float yDist = fromPoint.y - toPoint.y;
float result = sqrt(pow(xDist,2) + pow(yDist,2));
return result;
}
Edit: Ho fatto un errore nel mio precedente risposta .... è stato un po 'che non ho fatto niente di tutto questo tipo di matematica.
Se non si esegue il root del risultato, non si ottiene la distanza reale tra i punti. Questo è chiamato calcolare la grandezza tra due vettori.
Questo è il modo corretto per farlo. Se si desidera omettere lo sqrt, non si avrà la distanza esatta tra i due punti.
Se non si quadra la risposta, il codice funzionerà ma utilizzerà misure molto più grandi dei valori effettivi. Quindi, in futuro, se hai bisogno di ottenere la distanza tra i due punti, restituirà qualcosa come 90000 invece della distanza effettiva dei pixel che sarebbe 300px.
Ummm ...Non sei sicuro di quanto possa essere utile il link "prodotto punto" che hai citato, ma grazie per una risposta almeno ... – RexOnRoids
Senza di esso non puoi calcolare la distanza tra i due tocchi. È essenziale. –
Thx - Il codice sorgente è molto più facile da capire in questo caso. Non ero disposto a sedermi e tentare di assorbire un'intera pagina wiki sulla complessità del "prodotto di punti" LOL – RexOnRoids
Se si sta cercando un esempio di codice semplice del gesto di pizzico, utilizzo il metodo descritto da Brock nell'applicazione di esempio I describe here (nella penultima e ultima versione dell'applicazione in quella pagina). I gesti di pizzico sono usati per scalare un paio di livelli di Animazione di base in quell'esempio.
Tutto ciò che sta descrivendo fino al calcolo della distanza è semplicemente il Teorema di Pitagora applicato tra due punti (con le distanze X e Y come le due facce di un triangolo rettangolo).
hmmm ..... sembra che alcune persone siano estremamente confuse su come utilizzare la matematica di base. il prodotto punto è totalmente irrelavent e semplicemente confonde i problemi. il punto di punta tra 2 vettori viene utilizzato per calcolare l'angolo tra di essi.
In realtà è necessario utilizzare il teorema di Pitagora. Dot non è NIENTE a che fare con la ricerca della distanza tra i punti - solo per quanto riguarda la piramide!
per trovare la distanza tra due punti: sqrt (punto (p2-p1, p2-p1)) – twerdster
Abbastanza sicuro che le soluzioni presentate qui siano state obsolete, a favore dell'utilizzo della nuova classe UIPinchGestureRecognizer in iOS 3.2 e successive.
Non è così rilevante finché ci sono tonnellate di <3,2 dispositivi là fuori. – Jonny
- 1. Come interpretare i gesti di pizzicamento del trackpad per ingrandire IKImageBrowserView
- 2. Fare musica programmaticamente su iPhone?
- 3. Come utilizzare i Riconoscitori di gesti in IB (iPhone/iPad)?
- 4. Disabilita listener di gesti su DrawerLayout
- 5. Come fare un cursore lampeggiante (o lampeggiante) su iphone?
- 6. Come fare un http entrare nel cacao su iPhone
- 7. Riconoscimento simultaneo dei gesti per gesti specifici
- 8. Scorri verso sinistra i gesti su UITextField
- 9. Come rilevare lo scorrimento verso sinistra/destra su iPhone?
- 10. Intellij IDEA su mac: come disabilitare il gesto di pizzicamento per lo zoom
- 11. Senza iPhone, come fare screenshot con XCode?
- 12. Rilevamento dei gesti di scorrimento su UITableViewCell all'interno di UIScrollView
- 13. Perdita di ricognitori di gesti in UIPopoverController
- 14. fare lo schermo iPhone Dim
- 15. Gesti e catena di risponditori
- 16. Ascolto di gesti su un widget di un'applicazione
- 17. come rimuovere completamente i riconoscitori di gesti
- 18. Problemi con il rilevamento di gesti su ListView
- 19. Android: rilevare gesti fling
- 20. OpenGl ES su Iphone - Visualizzazione e rotazione di oggetti 3D
- 21. Come posso implementare i riconoscitori di gesti in OS X?
- 22. Come fare un creatore struct come CGRectMake (iphone)
- 23. Analisi dei gesti Kinect
- 24. lunetta Gesti con Android
- 25. Problema di Fancybox su iPhone
- 26. Riconoscimento di gesti swipe all'interno di UIWebView
- 27. Come fare matematica su NSNumber
- 28. Come fare SoapClient su php
- 29. Face Recognition su iPhone
- 30. Come ottenere IMEI su iPhone?
guarda questo esempio su zoom pizzico http://cocoabugs.blogspot.com/2011/03/pinch-zoom-using-uipinchgesturerecogniz.html –