Cercare di risolvere il tocco in posizione restituisce sempre zero (0) come posizione x
-
06-07-2019 - |
Domanda
Mentre scrivevo il gestore touchesBegan a mio avviso, ho riscontrato questo errore interessante.
Codice:
...
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self];
...
Il problema è che point.x è sempre zero, indipendentemente da dove "tocco". e y è un numero enorme che fluttua da qualche parte tra 1070000000 e 1090000000.
Le maniglie sono in una classe di visualizzazione e funzionano allo stesso modo se passo zero invece di self a locationInView. Ho anche provato a fare il loop su tutti i tocchi, e c'è solo quello con x come zero sempre.
Quindi cosa sto facendo di sbagliato qui?
Soluzione
Qualunque possibilità tu stia utilizzando NSLog (@ "% d,% d " ;, point.x, point.y); stampare i valori dei punti? Sembra un po 'come un float - > int errore di conversione. Ho usato locationInView: molto e non ho mai avuto problemi come questo.
Potresti anche provare a controllare [self frame] per assicurarti che sia diverso da zero.
Altri suggerimenti
Ben ha ragione. Il problema è quando si tenta di stampare il valore utilizzando % d
in NSLog
, poiché point.x
e point.y sono valori float.