2009-03-25 7 views
2

Ich möchte Benutzer eine Unterschrift auf dem iPhone-Bildschirm zeichnen lassen, also füge ich eine Unterklasse von UIView hinzu und füge Code zu seiner 'touchesMoved' Methode hinzu.Wie zeichne ich eine Unterschrift mit Linien auf dem iPhone-Bildschirm?


-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 
    firstTouch = [touch locationInView:self]; 

    CGSize mySize = CGSizeMake(5, 5); 
    UIGraphicsBeginImageContext(mySize);          
    CGContextRef ctx = UIGraphicsGetCurrentContext();      

    CGContextBeginPath(ctx);             
    CGContextSetRGBFillColor(ctx, 1, 0, 0, 1);        
    CGContextAddRect(ctx, CGRectMake(0, 0, 5, 5));       
    CGContextFillPath(ctx);             

    UIImage *redRect = UIGraphicsGetImageFromCurrentImageContext();   
    UIGraphicsEndImageContext();            

    UIImageView *redRectView = [[UIImageView alloc] initWithImage:redRect]; 
    redRectView.center = CGPointMake(firstTouch.x, firstTouch.y);        
    [self addSubview:redRectView];          

} 

Ich zeichne es mit kleinen Rechtecken und es stellt sich heraus, dass es Punkt für Punkt ist. Da es zu hässlich ist, möchte ich die Signatur mit Linien zeichnen. Aber wie unterscheidet man firstTouch und lastTouch? Wenn ich nur die Methode 'touchesMoved' verwende, kann ich nur einen Berührungspunkt erhalten.

Antwort

3

Gemäß der UIResponder Class Reference, werden Sie auch
– touchesBegan:withEvent: und
– touchesEnded:withEvent: implementieren müssen.
Nachdem Sie diese Methoden implementiert haben, sollten Sie in der Lage sein, genügend Daten zu erhalten, um eine Pfad-Bezier-Kurve oder eine andere geeignete Lösung zu implementieren.

[bearbeiten] Eine vielleicht bessere Lösung wäre die Berührungen direkt aus dem UIEvent Objekt zu sein, zu erhalten, wenn die Steuerung über eine
– touchesMoved:withEvent: Benachrichtigung erhält. Auch die GLPaint sample code kann sich als hilfreich erweisen.

2

Da der GLPaint-Beispielcode für Anfänger zu kompliziert sein kann, finde ich this tutorial. Es ist für die meisten Anfänger einfach zu erlernen.

0

Denken Sie daran, dass eine mit dem Finger geschriebene Unterschrift anders sein wird als eine mit einem Schreibgerät geschriebene Unterschrift. Vielleicht möchten Sie überdenken, wofür Sie die Signatur verwenden und ob sie so verbindlich ist, wie Sie es benötigen.

+0

Danke für Ihren Tipp. Die Signatur wird nur als zusätzliche Funktion für meine App verwendet. Es wird nicht die einzige Möglichkeit sein, einen Benutzer zu identifizieren. –

Verwandte Themen