2012-03-28 5 views
1
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 

UITouch *touch = [touches anyObject]; 

CGPoint currentPoint = [touch locationInView:self.view]; 

NSLog("%f %f",currentPoint.x,currentPoint.y); 
} 

Ich möchte eine Farbe App für mein iPad entwickelt. Wenn ich diesen Code benutze und den Finger verwende, um eine Linie auf meinem Pad zu malen, ist es print (x, 1), (x, 3), (x, 6), (x, 7), (x, 12) , (x, 15), (x, 18) ....touchesMoved Fortsetzung Punkt?

in meinem Gedanken sollte es drucken (x, 1), (x, 2), (x, 3), (x, 4), (x, 5), (x, 6), (x, 7), (x, 8), (x, 9), (x, 10), (x, 11), (x, 12), (x, 13), (x, 14), (x, 15), (x, 16), (x, 17), (x, 18) ....

touchesMoved kann keine fortgesetzte Koordinate erhalten?

Antwort

2

Es hängt von der Geschwindigkeit ab, die Sie wischen. Wenn Sie wirklich langsam wischen, erhalten Sie wahrscheinlich (x, 1), (x, 2), (x, 3), (x, 4), (x, 5), (x, 6), (x, 7), (x, 8), (x, 9), (x, 10), aber wenn du schnell wischst, kannst du so wenig wie (x, 1), (x, 5), (x, 10) bekommen.

Wenn Sie eine Farb-App entwickeln, müssen Sie berücksichtigen, ob der Benutzer seinen Finger nicht angehoben hat und die Linie zwischen den Punkten nicht gezeichnet hat.

Viel Glück!

+0

Wenn ich (1,1), (10,5), (1,10) bekomme, sieht die Zeile, die ich auf dem Bildschirm male, nicht schlau aus. Benutzer möchte vielleicht einen Bogen zeichnen, aber ich zeichne eine Linie auf dem Bildschirm. – wendli

+0

Vergessen Sie nicht, dass diese Zahlen Pixel sind, wenn Sie schnell wischen, können Sie einige überspringen, aber nicht genug, um einen Bogen wie eine Linie aussehen zu lassen. Sie können die iPhone App "Handwritting" (läuft auch auf dem iPad und es ist kostenlos) und sehen Sie den Effekt, der auftritt, wenn Sie wirklich schnell wischen. – Zalykr