我想在我看来经常画线,但它不起作用。我不想使用drawRect,因为我还必须保持先前绘制的线条的状态。下面是画线的代码。请指导。
- (void)drawPathWithPoints:(int)xAxis andYaxis:(int)yAxis
{
CGSize screenSize = drawingImgView.frame.size;
UIGraphicsBeginImageContext(drawingImgView.frame.size);
CGContextRef currentContext = UIGraphicsGetCurrentContext();
[drawingImgView.image drawInRect:CGRectMake(0, 0, screenSize.width, screenSize.height)];
CGContextSetLineCap(currentContext, kCGLineCapRound);
CGContextSetLineWidth(currentContext, 9.0);
CGContextSetRGBStrokeColor(currentContext, 0, 0, 1, 1);
CGContextBeginPath(currentContext);
CGMutablePathRef pointPath = CGPathCreateMutable();
CGContextMoveToPoint(currentContext,xAxis,yAxis);
CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAnimation.duration = 3.0;
pathAnimation.delegate = self;
pathAnimation.calculationMode = kCAAnimationPaced;
pathAnimation.fillMode = kCAFillModeForwards;
pathAnimation.removedOnCompletion = NO;
CGPathMoveToPoint(pointPath, NULL, xAxis, yAxis);
CGContextAddLineToPoint(currentContext, xAxis, yAxis);
CGPathAddLineToPoint(pointPath, NULL, xAxis, yAxis);
pathAnimation.path = pointPath;
myLayer = [[CAShapeLayer alloc] init];
myLayer.strokeColor = [[UIColor greenColor] CGColor];
myLayer.lineWidth = 11.0;
myLayer.fillColor = nil;
myLayer.lineJoin = kCALineJoinBevel;
myLayer.path = pointPath;
[drawingImgView.layer addSublayer:myLayer];
CGPathRelease(pointPath);
}