有没有一个SDK在iOS上用触摸画线?

有没有我可以用来画线的框架。 基本上我想增加客户在iPad / iPhone上login并将其作为图像进行捕捉的能力。

任何帮助非常感谢。

谢谢。

您可以使用UIKIT框架中提供的核心graphics来满足您的要求。

我有一个类似的要求,在我的应用程序与不同的用途,如果需要我可以为您提供的代码。

TNQ

.h文件

#import <UIKit/UIKit.h> 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 

.M

 #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 

现在有一个名为BrushEngine的框架,可以在http://www.cdframeworks.com/product/brushengine上find

BrushEngine允许你使用线条,形状(各种内build),自定义图片以及其他许多手指来绘制graphics。 然后,您可以将输出保存为图像或video。