我有一個子類nstableview的數據源數組可能增加,通過調用reloadData:我可以刷新以反映數據更新。如何在nstableview reloaddata之後保持可見內容?
但是在reloadData之後,tableview將總是滾動到具有相同舊行號的新單元格中(例如,如果tableview在reloadData之後顯示第二個單元格,tableview將滾動到新的第二個單元格,因此,tableview的可見內容將會改變)。如何禁用此自動行爲並在更新後保持可見內容不變?
在此先感謝!
我有一個子類nstableview的數據源數組可能增加,通過調用reloadData:我可以刷新以反映數據更新。如何在nstableview reloaddata之後保持可見內容?
但是在reloadData之後,tableview將總是滾動到具有相同舊行號的新單元格中(例如,如果tableview在reloadData之後顯示第二個單元格,tableview將滾動到新的第二個單元格,因此,tableview的可見內容將會改變)。如何禁用此自動行爲並在更新後保持可見內容不變?
在此先感謝!
我解決了這個問題:首先,我得到了矩形大小改變量;然後在reloadData之後,使用clipview的scrollToPoint:方法立即將tableview滾動到已更改的點(原始點+ delta部分)。它速度太快,你無法在那裏實現操作。
表格視圖在其內容更改時不會重新滾動。由於您正在更改當前顯示行下的表格內容,因此您需要自己移動滾動條。
我沒有這個代碼,但我建議使用rowAtPoint:
找到表視圖的初始位置,確定或計算該行的內容的新行的索引,然後調用:
[tableView reloadData];
[tableView scrollRowToVisible:newIndex];
謝謝,noa,你的回答真的給了我靈感! – Terry
小心分享我們其他人的代碼? =) – rocky
我已經實現了這一點,但我得到了一點抖動,你的滾動是否流暢? –
http://stackoverflow.com/questions/7925136/nstableview-scrollrowtovisible-with-animation –