2015-05-25 34 views
2

看来我的基于视图的OutlineView尝试在用户滚动时重新呈现文本。我认为这是因为它试图通过重复使用不在可见矩形之外的行来节省内存,然后将新数据重新渲染到那些旧视图。我如何禁用此功能?我愿意牺牲内存来存档,这样我可以获得更好的滚动性能。 (我尝试了各种优化像层或左右,但没有运气)。防止在滚动时重绘NSOutlineView(或NSTableView)

编辑:有是有异曲同工之妙另一个问题矿山这里How to make NSTableView not reuse TableCellViews,但没有答案了:(

+0

如何禁用行再利用提高你的表现滚动? –

+0

以及上面所说的,当tableview被滚动时,它必须将新文本呈现给重用单元格,并且我的表格包含大量文本,而文本呈现是一个昂贵的过程 – it4rb

回答

2

我想你感到困惑 - 它不会重新渲染文本的表格只显示了意见。对于可见区域(请注意下方),并在滚动时拉动新视图 - 可能会重新使用旧视图。

您提供了该视图,请使用委托方法viewForTableColumn:row:并返回您自己的缓存视图给定的行

但是这不会阻止绘图;视图仍然可能会标记为di rty和draw。

我不认为你问的是正确的问题。这听起来像是你有一个性能问题。为了帮助你,我们必须看到样品或仪器痕迹。

  • 警告:响应式滚动将拉入非可见区域中的视图。请参阅AppKit发行说明。

科尔宾