Frage

Während die touchesBegan Handler für meine Ansicht schreibe ich in diesem interessanten Fehler lief.

Code:

...
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self];
...

Das Problem ist point.x ist immer Null, egal wo ich „touch“ und y eine große Zahl ist, die irgendwo zwischen 1070000000 und 1090000000 flunctuates.

Die Griffe ist in einer Ansichtsklasse und es funktioniert auf die gleiche ist gebe ich null statt selbst zu locationInView. Ich habe auch versucht, über all die Berührungen Looping, und es ist nur, dass man mit x als Null immer.

Also, was ich hier falsch mache?

War es hilfreich?

Lösung

Jede Chance, Sie NSLog verwenden (@ "% d,% d", point.x, point.y); die Punktwerte auszudrucken? Es klingt ein bisschen wie ein Schwimmer -> int Konvertierungsfehler. Ich habe verwendet locationInView: viel, und ich habe noch nie ein Problem wie dieses hatte.

Sie auch versuchen könnten, [self frame] Kontrolle, um sicherzustellen, es ist ungleich Null.

Andere Tipps

Ben ist richtig. Das Problem ist, wenn Sie versuchen, den Wert mit %d in NSLog zu drucken, weil point.x und point.y sind Float-Werte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top