问题描述
- UIGraphicsBeginImageContext绘制
-
在视图中画线。而且最好不用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); }
时间: 2024-08-04 13:58:08