如何使用 Core Graphics 无延迟地显示数千张绘图

问题描述

对于我在 MacOS 上的 Objective-C 项目,我需要创建一个烛台图表。对于那些没有看到它是什么的人,这里是 TradingView 的屏幕截图:

enter image description here

如果您想查看与此类图表的可能交互作用,可以直接访问该站点:https//www.Tradingview.com。

首先,我创建了一个自定义 NSView,它实现了 drawRect 方法,我可以在其中绘制图形(矩形、点、线...)。

我还实现了mouseEntered、mouseExited、mouseMoved...等方法来与视图交互。这些方法以以下命令结束以更新视图:

[self setNeedsdisplay:YES];

显示的元素很少,一切都完美无缺。

问题是当我与包含大量图形元素的视图(移动光标、平移图表、调整图表大小...)进行交互时,它会滞后。 TradingView 图表非常流畅。我想在我的 MacOS 应用程序上获得相同的流动性。

我不知道使用 Core Graphics 显示和更新包含大量元素(数千个)的图表的正确方法是什么。这就是为什么我需要你的帮助。

提前致谢

解决方法

不知道?我必须使用其他库,如 Core Animation、SpriteKit 或 Metal 吗?