2011-11-27 27 views
5

Desidero sapere qual è l'approccio per tracciare una linea con un dito in una vista bianca. Voglio fare una tavola da disegno e voglio iniziare a capire come disegnare una linea semplice o una traccia fatta con un dito. Come posso farlo?IOS: tracciare una linea con il dito

+1

Si dovrebbe dare un'occhiata a l'applicazione demo [GLPaint] (http://developer.apple.com/library/ios/#samplecode/GLPaint/Introduction/Intro.html), da parte di Apple. Ti insegnerà le basi della pittura a dito singolo usando OpenGL ES. – Macmade

+0

Prova UIBezierpath. Questo tutorial potrebbe essere utile per te. http://soulwithmobiletechnology.blogspot.in/2011/05/uibezierpath-tutorial-for-iphone-sdk-40.html –

+0

Un altro buon esempio può essere trovato qui: questo controller fornisce l'input di una firma e restituisce un'immagine. Inoltre viene fornito un esempio operativo: https://github.com/bunchjesse/JBSignatureController –

risposta

4

Ho capito il tuo problema. Si prega di consultare il codice qui sotto.Utilizzerà pieno per voi.

-(void)intializeDrawImage 
{ 
    drawImage = [[UIImageView alloc]initWithFrame:CGRectMake(0, 100, 320, 320)]; 
    [drawImage setBackgroundColor:[UIColor purpleColor]]; 
    [drawImage setUserInteractionEnabled:YES]; 
    [self.view addSubview:drawImage]; 
} 
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSLog(@"touchesBegan"); 
    UITouch *touch = [touches anyObject]; 
    CGPoint p = [touch locationInView:drawImage]; 
    startPoint = p; 
} 

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSLog(@"touchesMoved"); 
    UITouch *touch = [touches anyObject]; 
    CGPoint p = [touch locationInView:drawImage]; 
    [self drawLineFrom:startPoint endPoint:p]; 
} 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self touchesMoved:touches withEvent:event]; 
} 

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self touchesEnded:touches withEvent:event]; 
} 

-(void)drawLineFrom:(CGPoint)from endPoint:(CGPoint)to 
{ 
    drawImage.image = [UIImage imageNamed:@""]; 

    UIGraphicsBeginImageContext(drawImage.frame.size); 
    [drawImage.image drawInRect:CGRectMake(0, 0, drawImage.frame.size.width, drawImage.frame.size.height)]; 
    [[UIColor greenColor] set]; 
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0f); 
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), from.x, from.y); 
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), to.x , to.y); 

    CGContextStrokePath(UIGraphicsGetCurrentContext()); 

    drawImage.image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
} 
Problemi correlati