Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>you can meet your requirement by using core graphics available in UIKIT framework.</p> <p>i had a similar requirement in my application with a different use ,if needed i can provide you the code.</p> <p>TNQ</p> <p>.h file</p> <pre><code>#import &lt;UIKit/UIKit.h&gt; typedef enum _DrawingMode{ DrawingModePen =0, DrawingModeEraser=1, } DrawingMode; @interface DrawingView : UIView { CGPoint lastPoint; UIImageView *drawImage; BOOL mouseSwiped; int mouseMoved; DrawingMode mode; UIColor *_drawingPenColor; } @property (nonatomic, retain) UIColor *drawingPenColor; @property (nonatomic) DrawingMode mode; @property (nonatomic, retain) UIImageView *imageView; @property (nonatomic,retain)UIImageView *drawImage; @end </code></pre> <p>.m </p> <pre><code>#import "DrawingView.h" @implementation DrawingView @synthesize mode, drawingPenColor=_drawingPenColor, imageView=drawImage; -(void)initialize{ drawImage = [[UIImageView alloc] initWithImage:nil]; self.autoresizesSubviews = YES; drawImage.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); drawImage.frame = self.bounds; [self addSubview:drawImage]; self.backgroundColor = [UIColor clearColor]; mouseMoved = 0; _drawingPenColor = [[UIColor alloc] initWithWhite:0.0 alpha:1.0]; } -(void)maskImage:(UIImage *)image withMask:(UIImage *)maskImage { CGImageRef maskRef = maskImage.CGImage; CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef), CGImageGetHeight(maskRef), CGImageGetBitsPerComponent(maskRef), CGImageGetBitsPerPixel(maskRef), CGImageGetBytesPerRow(maskRef), CGImageGetDataProvider(maskRef), NULL, false); CGImageRef masked = CGImageCreateWithMask([image CGImage], mask); UIImage *tempImage = [[UIImage alloc] initWithCGImage:masked]; //self.clippedImage = tempImage; [tempImage release]; CFRelease(masked); CFRelease(mask); } -(void)awakeFromNib{ [self initialize]; } - (id)initWithFrame:(CGRect)frame { if ((self = [super initWithFrame:frame])) { // Initialization code [self initialize]; } return self; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { mouseSwiped = NO; UITouch *touch = [touches anyObject]; if ([touch tapCount] == 2) { drawImage.image = nil; return; } lastPoint = [touch locationInView:self]; //lastPoint.y -= 20; NSLog(@"touches begin"); } - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { mouseSwiped = YES; UITouch *touch = [touches anyObject]; CGPoint currentPoint = [touch locationInView:self]; //currentPoint.y -= 20; UIGraphicsBeginImageContext(self.bounds.size); [drawImage.image drawInRect:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)]; CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0); if (mode == DrawingModePen) { NSLog(@"drawing"); CGContextSetStrokeColorWithColor(UIGraphicsGetCurrentContext(), [_drawingPenColor CGColor]); } else { CGContextSetStrokeColorWithColor(UIGraphicsGetCurrentContext(), [[UIColor clearColor] CGColor]); CGContextBeginPath(UIGraphicsGetCurrentContext()); CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); CGContextClearRect (UIGraphicsGetCurrentContext(), CGRectMake(lastPoint.x, lastPoint.y, 20, 20)); CGContextStrokePath(UIGraphicsGetCurrentContext()); NSLog(@"clearing"); } 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.bounds.size); [drawImage.image drawInRect:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)]; CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0); CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); if (mode == DrawingModePen) { CGContextSetStrokeColorWithColor(UIGraphicsGetCurrentContext(), [_drawingPenColor CGColor]); } else { CGContextSetStrokeColorWithColor(UIGraphicsGetCurrentContext(), [self.backgroundColor CGColor]); } CGContextStrokePath(UIGraphicsGetCurrentContext()); CGContextFlush(UIGraphicsGetCurrentContext()); drawImage.image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); } } - (void)dealloc { [drawImage release]; [_drawingPenColor release]; [super dealloc]; } @end </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload