使用CoreGraphics和CGContextAddLine绘制速度更改的动画线

时间:2013-07-29 19:34:18

标签: iphone ios objective-c core-graphics

我创建了一个iPhone应用程序,它使用CLLocation(CoreLocation框架)显示您当前的速度。

 - (void)locationUpdate:(CLLocation *)location     
   {
   speedLabel.text = [NSString stringWithFormat:@"%f", [location speed]];
   }

这是我的代码,用于显示标签中的当前速度。我想添加一个小动画线,其中包含速度的起伏(自动起作用)。

结果应该是这样的:http://cl.ly/image/0j2U0D462600

我认为这可以通过CGContextAddLine(CoreGraphics)实现吗?

我看到了这个问题,但对我来说仍然不清楚:How to Draw a line pixel by pixel using objective C

谢谢!

1 个答案:

答案 0 :(得分:0)

此代码采用图形上下文并在其中绘制一条黑色的线条,根据从最后一个点开始的保存点,将其绘制到不同的位置。

        UIGraphicsBeginImageContext(self.frame.size);
        CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
        CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
        CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 1.0);
        CGContextBeginPath(UIGraphicsGetCurrentContext());
        CGContextMoveToPoint(UIGraphicsGetCurrentContext(), self.lastPoint.x, self.lastPoint.y);
        CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
        CGContextStrokePath(UIGraphicsGetCurrentContext());
        mImgViewSig.image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

最后一点是绘制的最后一点,当前点是用户触及的点