可怕的表现NSScrollView我试图画一个大的波形/图是NSView
放置在NSScrollView
里面。这样,用户可以一次水平滚动和滚动其中的一部分。NSScrollView与海量contentView导致滚动
波形视图可能非常大(技术上无限宽)。
如果绘制了整个波形,则滚动性能不可用。我不确定为什么NSScrollView
试图重绘整个视图而不是仅仅是可见的矩形 - 但我怀疑我需要自己实现这个逻辑。
什么是最有效的方式来实现这个有很好的滚动体验?
可怕的表现NSScrollView我试图画一个大的波形/图是NSView
放置在NSScrollView
里面。这样,用户可以一次水平滚动和滚动其中的一部分。NSScrollView与海量contentView导致滚动
波形视图可能非常大(技术上无限宽)。
如果绘制了整个波形,则滚动性能不可用。我不确定为什么NSScrollView
试图重绘整个视图而不是仅仅是可见的矩形 - 但我怀疑我需要自己实现这个逻辑。
什么是最有效的方式来实现这个有很好的滚动体验?
你可以瓦滚动视图的内容分成几个小NSView
情况下,每一个代表你的图的一小部分,放在旁边彼此。
但是,我不确定在屏幕外剪切的视图仍会消耗资源并影响性能。
一个更好的apporach将类似于上面,但依靠收藏查看的内置功能。它的机器肯定只显示应该可见的单元格(不会被滚动视图剪切)。
收集视图也横跨了我的想法 - 但不应该滚动视图具有相同的内置机制没有平铺?像scrollView:willShowRect:或类似的东西? –
如果你的图是一个单一的整体NSView,它是一个全或无的东西:NSView本身不支持对部分遮挡显示的优化,除了'drawRect:'... –
我不知道细节如何你的NSView的内容被创建,但是拆分成tile会使系统有更好的机会处理更小的数据。 –
“NSScrollView”是否要求您绘制整个视图,或者在要求绘制脏部分时绘制整个视图?是创建图形的一个选项的图像? – Willeke