Come disegnare la firma con linee su schermo di iPhone?
-
22-08-2019 - |
Domanda
Voglio lasciare all'utente disegnare una firma su schermo di iPhone, quindi aggiungo una sottoclasse di UIView e aggiungere del codice al suo metodo 'touchesMoved'.
-(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];
}
sto disegnando con piccoli rettangoli e si scopre essere punto per punto. Come è troppo brutto, vorrei richiamare la firma con le linee. Ma come distinguere FirstTouch e lastTouch? Se uso unico metodo 'touchesMoved', posso solo ottenere uno punto di contatto.
Soluzione
Come per il UIResponder Class Reference , sarà anche necessario implementare
– touchesBegan:withEvent:
e
– touchesEnded:withEvent:
.
Dopo aver implementato questi metodi, si dovrebbe essere in grado di ottenere dati sufficienti per implementare una curva pathing Bezier o altra soluzione adatta.
[ modifica ] Una soluzione migliore sarebbe forse essere quello di ottenere i tocchi direttamente dall'oggetto UIEvent
una volta che il controller riceve un
– touchesMoved:withEvent:
notifica. Inoltre, il codice di esempio GLPaint può anche rivelarsi utile.
Altri suggerimenti
Mentre il codice di esempio GLPaint potrebbe essere troppo complicato per i principianti, trovo questo tutorial. E 'semplice da imparare per la maggior parte dei principianti.
Tenete a mente che una firma scritto con un dito sta per essere diverso da quello scritto con uno strumento di scrittura. Si consiglia di ripensare ciò che si sta utilizzando la firma per, e se è come vincolante come è necessario che sia.