2010-09-30 6 views
8

Sto cercando il modo migliore per rilevare più di un dito sullo schermo alla volta. Non sto rilevando rubinetti o pizzicotti, solo il fatto che più di un tocco sta accadendo. Sembra che non ci siano riconoscitori di gesti per questo. Qual è il modo migliore?iOS - rileva quando sullo schermo è presente più di un dito

+0

È per qualsiasi punto dello schermo o su una vista particolare? –

risposta

13

Nei tocchi Began, touchMoved e tocca i metodi Ended, un parametro è un evento, che è un oggetto UIEvent. Il numero di dita sullo schermo è [[event allTouches] count].

[Modificato perché Josh Hinman fatto notare che avevo sbagliato prima -. La mia precedente proposta di utilizzare [count tocchi] sul parametro tocchi in quegli stessi metodi non funzionerà]

+3

Non credo che possa fornire in modo affidabile il numero totale di tocchi sullo schermo; solo il numero di tocchi che vengono aggiornati. In altre parole, se ho tre dita sullo schermo, e muovo un dito mantenendo gli altri due fermi, quindi tocca Moved: verrà chiamato con un NSSet di un tocco (quello che ho spostato). –

0

One/Multi touch è trasparente per te - Ricevi solo notifiche su dove un tocco è iniziato/spostato/terminato/toccato. Se si verificano due tocchi allo stesso tempo, riceverete le notifiche per entrambi.

Non conosco alcuna funzione incorporata che determina se le sequenze di tocco visualizzate consistono o meno in un pizzico. Ma è possibile dare un'occhiata al codice di esempio "tocco" di Apple per l'ispirazione.

https://developer.apple.com/library/ios/#samplecode/Touches/

3

documentarsi sul metodo -touchesBegan:withEvent:. È il punto di ingresso nella gestione degli eventi multi-touch.

Ecco collegamento lib di uno sviluppatore su eventi multitouch: https://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MultitouchEvents/MultitouchEvents.html

+0

Ho provato questo nel controller della vista, ma non viene mai chiamato: - (void) toccaBegan: (NSSet *) tocca conEvent: (UIEvent *) evento { \t NSLog (@ "num tocchi:% d", [tocca contare]); } – sol

0
  • (vuoto) touchBurn: (NSSet *) tocca conEvent: (UIEvent *) evento {

    NSLog (@ "% lu", [[evento allTouches] conteggio]); }