Frage

Ich möchte Benutzer lassen, um eine Signatur auf dem iPhone-Bildschirm zeichnen, so füge ich eine Unterklasse von UIView und einige Code auf seine ‚touchesMoved‘ Methode hinzufügen.


-(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 es mit kleinen Rechtecke bin Zeichnung und es stellt sich heraus, Punkt für Punkt werden. Wie es zu hässlich ist, möchte ich die Signatur mit Linien zeichnen. Aber wie Firsttouch und lastTouch zu unterscheiden? Wenn ich nur ‚touchesMoved‘ Methode verwenden, kann ich nur einen Berührungspunkt bekommen.

War es hilfreich?

Lösung

Gemäß der UIResponder Klassenreferenz , müssen Sie auch
implementieren – touchesBegan:withEvent: und
– touchesEnded:withEvent:.
Nachdem Sie diese Methoden implementieren, sollten Sie in der Lage sein, genug, um Daten zu erhalten eine Wegfindung Bezierkurve 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
empfängt – touchesMoved:withEvent: Benachrichtigung. Auch der GLPaint Beispielcode kann auch hilfreich sein.

Andere Tipps

Wie der GLPaint Beispielcode für Anfänger zu kompliziert sein kann, finde ich diese Tutorial . Es ist einfach für die meisten Anfänger zu lernen.

Beachten Sie, dass eine Signatur mit dem Finger geschrieben wird man, anders zu sein, als mit einem Schreibgerät geschrieben. Vielleicht möchten Sie zu überdenken, was Sie die Signatur für, verwenden und ob es als verbindlich, wie Sie es brauchen.

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