2011-06-04 6 views
0

Je crée une application pour écrire des notes sans clavier .. Je suis capable de dessiner des formes sur l'écran avec le doigt..Mais je sauvegarde des notes sous forme d'image ... Puis-je ajouter cette même fonctionnalité pour UITextview ??? Moyens que je veux écrire avec le mouvement de doigt dans UItextview .. et vouloir le sauver dans le textfile ... Est-ce possible?UItextview avec Finger Reconnaissance gestuelle

code pour cette

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 


    mouseSwiped = YES; 

    UITouch *touch = [touches anyObject]; 
    CGPoint currentPoint = [touch locationInView:self.view]; 
    currentPoint.y -=20; 

    UIGraphicsBeginImageContext(self.view.frame.size); 
    [drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 

    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); 
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0); 
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0); 
    CGContextBeginPath(UIGraphicsGetCurrentContext()); 
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); 

    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y); 


    CGContextStrokePath(UIGraphicsGetCurrentContext()); 

    drawImage.image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    lastPoint = currentPoint; 

    mouseMoved ++; 
    if (mouseMoved == 10) { 
     mouseMoved = 0; 
    } 

} 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 


    UITouch *touch = [touches anyObject]; 

    if ([touch tapCount] ==2) { 
     drawImage.image = nil; 
     return ; 
    } 

    if (!mouseSwiped) { 

     UIGraphicsBeginImageContext(self.view.frame.size); 
     [drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
     CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); 

     CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0); 

     CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 1.0, 0.0, 1.0); 

     CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); 
     CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); 

     CGContextStrokePath(UIGraphicsGetCurrentContext()); 
     drawImage.image = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 
    } 

} 

Répondre

1

En théorie, puisque UITextView est une sous-classe de UIResponder vous devriez être en mesure de remplacer les méthodes comme celle que vous avez montré.

Cependant vous devriez l'essayer par vous-même parce que la dernière fois que j'ai essayé (dans iOS 3.0) il y avait quelques méthodes qui n'ont pas été appelées (UITextView l'exécution a changé beaucoup entre 2.x et 3.0) détournant certaines méthodes UIResponder et ne laissera pas l'utilisateur les utiliser. Par exemple, touchEnded:withEvent: et touchCancelled:withEvent: n'ont pas été appelés comme dans les autres sous-classes UIResponder.

En outre, textview est une sous-classe de UIScrollView et vos dessins pourraient être si probablement vous défile voulez dessiner dans une autre vue ou la couche plutôt que la textView

+0

ok .. Vous voulez dire ImageView est bon à cet effet? – DeviPhone26

+0

Si vous dessinez quelque chose, UIView est suffisant. UIImageView est pour montrer des fichiers d'image :) Essayez simplement l'UITextView, si vous pensez que c'est trop dur de manipuler le dessin + défilement alors utilisez juste un UIView comme toile. – nacho4d

Questions connexes