Intentar resolver el toque a la ubicación siempre devuelve cero (0) como x ubicación
-
06-07-2019 - |
Pregunta
Mientras escribía el controlador touchesBegan para mi punto de vista, me encontré con este interesante error.
Código:
...
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self];
...
El problema es que point.x siempre es cero, sin importar dónde toque '' e y es un número enorme que fluctúa entre 1070000000 y 1090000000.
Los identificadores están en una clase de vista y funcionan igual si paso nil en lugar de self a locationInView. También intenté recorrer todos los toques, y solo hay uno con x como cero siempre.
Entonces, ¿qué estoy haciendo mal aquí?
Solución
Cualquier posibilidad de que esté usando NSLog (@ "% d,% d " ;, point.x, point.y); imprimir los valores de puntos? Suena como un flotador - > int error de conversión. He usado locationInView: mucho, y nunca he tenido un problema como este.
También puede intentar marcar [self frame] para asegurarse de que no sea cero.
Otros consejos
Ben tiene razón. El problema es cuando intenta imprimir el valor usando % d
en NSLog
, porque point.x
y point.y
son valores flotantes.