【发布时间】:2011-07-21 08:22:58
【问题描述】:
我正在创建一个应用程序,该应用程序涉及随着时间的推移在工作区中对线条进行动画处理。我目前的方法是在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。我有什么选择?我需要让它执行得更快,并且很想摆脱这个笨重的计时器。
谢谢!
【问题讨论】:
标签: objective-c ios ipad animation core-animation