2011-09-09 57 views
3

我有一個子類nstableview的數據源數組可能增加,通過調用reloadData:我可以刷新以反映數據更新。如何在nstableview reloaddata之後保持可見內容?

但是在reloadData之後,tableview將總是滾動到具有相同舊行號的新單元格中(例如,如果tableview在reloadData之後顯示第二個單元格,tableview將滾動到新的第二個單元格,因此,tableview的可見內容將會改變)。如何禁用此自動行爲並在更新後保持可見內容不變?

在此先感謝!

回答

0

我解決了這個問題:首先,我得到了矩形大小改變量;然後在reloadData之後,使用clipview的scrollToPoint:方法立即將tableview滾動到已更改的點(原始點+ delta部分)。它速度太快,你無法在那裏實現操作。

+0

小心分享我們其他人的代碼? =) – rocky

+0

我已經實現了這一點,但我得到了一點抖動,你的滾動是否流暢? –

+0

http://stackoverflow.com/questions/7925136/nstableview-scrollrowtovisible-with-animation –

1

表格視圖在其內容更改時不會重新滾動。由於您正在更改當前顯示行下的表格內容,因此您需要自己移動滾動條。

我沒有這個代碼,但我建議使用rowAtPoint:找到表視圖的初始位置,確定或計算該行的內容的新行的索引,然後調用:

[tableView reloadData]; 
[tableView scrollRowToVisible:newIndex]; 
+0

謝謝,noa,你的回答真的給了我靈感! – Terry

相關問題