как сохранить видимый контент после nstableview reloaddata? - PullRequest
3 голосов
/ 09 сентября 2011

У меня есть подкласс nstableview, чей массив данных может увеличиваться, вызывая reloadData: я могу обновить, чтобы отразить обновление данных.

Но после reloadData: табличное представление всегда будет прокручиваться к новой ячейке с тем же старым номером строки (например, если табличное представление показывало 2-ю ячейку, после reloadData:, табличное представление будет прокручиваться к новой 2-й ячейке, следовательно, видимое содержимое таблицы будет меняться). Как отключить это автоматическое поведение и сохранить видимое содержимое без изменений после обновления?

спасибо заранее!

Ответы [ 2 ]

1 голос
/ 11 сентября 2011

Табличные представления не прокручиваются при изменении их содержимого.Поскольку вы изменяете содержимое таблицы, которое лежит в основе отображаемых в данный момент строк, вам необходимо самостоятельно переместить прокрутку.

У меня нет кода для этого, но я предлагаю использовать rowAtPoint:, чтобы найти начальную позициютаблицы, идентифицируя или вычисляя индекс новой строки для содержимого этой строки, а затем вызывая:

[tableView reloadData];
[tableView scrollRowToVisible:newIndex];
0 голосов
/ 18 сентября 2011

Я исправил эту проблему: во-первых, я изменил размер прямоугольника;затем после reloadData: немедленно прокрутите табличное представление к измененной точке (исходная точка + дельта-части) с помощью метода scrollToPoint: для clipview.Он делает это так быстро, что вы не можете выполнить операцию там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...