我需要根据从服务器接收到的数据绘制线,而且每次收到新的点时,我都尽量避免重新绘制整件事情,所以我想:
CGContextRef,并仅为新点绘制线,或UIMutablePath并向路径添加新的点行,然后划出路径,但我发现了问题:
CGContextRef不起作用,为什么?(即我可以在UIGraphicsGetCurrentContext()中使用drawRect,但不能在方法之外保存和使用它)CGContextRef重绘的效率。谢谢!
发布于 2013-09-17 18:17:48
不要试图重用通过UIGraphicsGetCurrentContext()获得的图形上下文。这是不支持的,将导致不稳定的行为。
如果重复调用drawRect导致性能问题,那么有两种策略可能会有所帮助:
发布于 2013-09-17 18:15:41
您不能重用它的原因是因为您正在绘制一个缓冲区,该缓冲区在短时间内被提交。到那时,添加任何更改都为时已晚。
根据接收到的点数和频率,重新创建整个路径可能效率很低。重新绘制可变路径相当便宜。因此,您可能应该在某个地方保存一个可变路径,每次向其添加一个点时,都要使用setNeedsDisplay或其他任何东西重新绘制。不要担心这种方法的性能,直到您实际分析/测量它,并且它证明是低效的。
https://stackoverflow.com/questions/18845462
复制相似问题