Есть ли SDK для рисования линий на iOS с прикосновением?

Есть ли рамки, которые я могу использовать для рисования линий с прикосновением. В основном я хочу добавить возможность для клиента подписывать iPad / iPhone и фиксировать его как изображение.

Любая помощь очень ценится.

Благодарю.

вы можете выполнить свое требование, используя основную графику, доступную в рамках UIKIT.

У меня было аналогичное требование в моем приложении с другим использованием, при необходимости я могу предоставить вам код.

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

BrushEngine позволяет рисовать пальцами, используя линии, фигуры (различные встроенные), пользовательские изображения и многие другие. Затем вы можете сохранить результат как изображение или видео.

  • Обновление главного табличного представления контроллера UISplitView
  • Приложение отклонено из-за «iPhone Apps должно также работать на iPad без изменений, при разрешении iPhone и при разрешении 2X iPhone 3GS»,
  • Как ограничить приложение iOS только для iPhone, за исключением iPad?
  • Как давно с момента последнего открытия приложения в iOS?
  • Изменение основного вида и подробного представления из uisplitview
  • Объем видео в HTML5
  • Как определить, какое текстовое поле в настоящее время является первым ответчиком
  • Как создать несколько приложений из одного и того же общего кода в Xcode?
  • setPopoverContentSize: не работает последовательно на iOS 8, с xCode 6
  • Точки принтеров против точек iOS
  • Как узнать, превышает ли текст пределы текстового вида?
  • Давайте будем гением компьютера.