2015-05-25 72 views
2

看來我的基於視圖的OutlineView嘗試在用戶滾動時重新呈現文本。我認爲這是因爲它試圖通過重複使用不在可見矩形之外的行來節省內存,然後將新數據重新渲染到那些舊視圖。我如何禁用此功能?我願意犧牲內存來存檔,這樣我可以獲得更好的滾動性能。 (我嘗試了各種優化像層或左右,但沒有運氣)。防止在滾動時重繪NSOutlineView(或NSTableView)

編輯:有是有異曲同工之妙另一個問題礦山這裏How to make NSTableView not reuse TableCellViews,但沒有答案了:(

+0

如何禁用行再利用提高你的表現滾動? –

+0

以及上面所說的,當tableview被滾動時,它必須將新文本呈現給重用單元格,並且我的表格包含大量文本,而文本呈現是一個昂貴的過程 – it4rb

回答

2

我想你感到困惑 - 它不會重新渲染文本的表格只顯示了意見。對於可見區域(請注意下方),並在滾動時拉動新視圖 - 可能會重新使用舊視圖。

您提供了該視圖,請使用委託方法viewForTableColumn:row:並返回您自己的緩存視圖給定的行

但是這不會阻止繪圖;視圖仍然可能會標記爲di rty和draw。

我不認爲你問的是正確的問題。這聽起來像是你有一個性能問題。爲了幫助你,我們必須看到樣品或儀器痕跡。

  • 警告:響應式滾動將拉入非可見區域中的視圖。請參閱AppKit發行說明。

科爾賓