我在viewDidLoad
中使用以下代码作为填充路径,它完美无缺
UIGraphicsBeginImageContext(_drawingPad.frame.size);
CGContextRef context1 = UIGraphicsGetCurrentContext();
CGContextMoveToPoint(context1, 300, 300);
CGContextAddLineToPoint(context1, 400, 350);
CGContextAddLineToPoint(context1, 300, 400);
CGContextAddLineToPoint(context1, 250, 350);
CGContextAddLineToPoint(context1, 300, 300);
CGContextClosePath(context1);
//CGContextStrokePath(context1);
CGContextSetFillColorWithColor(context1, [UIColor redColor].CGColor);
CGContextFillPath(context1);
CGContextStrokePath(context1);
我也会在触摸开始时创建一条线。 但在我创建线之前,填充路径会被删除..
答案 0 :(得分:1)
替换
CGContextFillPath(context1);
CGContextStrokePath(context1);
通过
CGContextDrawPath(context1, kCGPathFillStroke);
这将填充和描边当前路径而不删除它们之间。
答案 1 :(得分:0)
你试图在不创建路径的情况下绘制路径。
尝试以下方法:
UIGraphicsBeginImageContext(_drawingPad.frame.size);
CGContextRef context1 = UIGraphicsGetCurrentContext();
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path,300,300);
CGPathAddLineToPoint(path,400,350);
CGPathAddLineToPoint(path,300,400);
CGPathAddLineToPoint(path,250,350);
CGPathAddLineToPoint(path,300,300);
CGPathCloseSubpath(path);
CGContextSetStrokeColorWithColor(context1, [UIColor blackColor].CGColor);
CGContextSetFillColorWithColor(context1, [UIColor redColor].CGColor);
CGContextAddPath(context1,path);
//Now you can fill and stroke the path
CGContextFillPath(context1);
CGContextStrokePath(context1);
CGPathRelease(path); //free up memory