我正在创建一个涉及在工作区内随时间动画化线条的应用程序。 我目前的方法是使用像这样的代码在drawRect
中:
CGContextSetStrokeColor(context, black);
CGContextBeginPath(context);
CGContextMoveToPoint(context, startPoint.x, startPoint.y);
CGContextAddLineToPoint(context, finalPoint.x, finalPoint.y);
CGContextStrokePath(context);
然后只需设置一个计时器,每0.05秒更新finalPoint
并调用setNeedsDisplay
即可。
当有5条以上的线同时移动时,我发现这种方法会严重拖慢应用程序,即使刷新频率很高,仍然会出现卡顿。
肯定有更好的方法来执行这个非常简单的线性绘制动画 - 即说我想要一条线从x1,y1开始,延伸到x2,y2,在给定的时间内完成。我有哪些选择?我需要让它运行得更快,并且希望摆脱这个笨重的计时器。
谢谢!