具有大量 contentView 的 NSScrollView 导致滚动时性能不佳

NSScrollView with massive contentView causing terrible performance on scroll

我正在尝试绘制一个大的 waveform/graph,它是 NSView 放置在 NSScrollView 内。这样,用户就可以一次水平滚动和部分滚动。

波形视图可以非常大(技术上无限宽)。

如果绘制整个波形,滚动性能将无法使用。我不确定为什么 NSScrollView 试图重绘整个视图而不仅仅是可见的矩形 - 但我怀疑我需要自己实现这个逻辑。

为了获得良好的滚动体验,最有效的实现方式是什么?

您可以将滚动视图的内容 平铺 成几个小的 NSView 实例,每个实例代表图表的一小部分并彼此相邻放置。

但是,我不确定被裁剪到屏幕外的视图在多大程度上仍然会消耗资源并影响性能。

更好的方法与上述类似,但依赖于集合视图 的内置功能。它的机制绝对负责只显示应该可见的单元格(不被滚动视图剪裁)。