UITableView reloadData для всех строк - PullRequest
2 голосов
/ 03 апреля 2012

Можно ли вызвать (или настроить) метод reloadData, чтобы позволить табличному представлению перезагружать данные для всех его строк (не только видимых)?

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

Ответы [ 3 ]

2 голосов
/ 03 апреля 2012

Вам не нужно настраивать reloadData.Как уже упоминалось, клетки, которые находятся за пределами экрана, на самом деле не существуютОни сидят в очереди на повторное использование (надеюсь), ожидая, чтобы их вытащили на экран.Как только они собираются перемещаться по экрану, табличное представление отправляет tableView: cellForRowAtIndexPath: своему источнику данных.Здесь вы конфигурируете все, что вам нужно в этой конкретной ячейке, для этой конкретной строки.

Возможно, вы захотите создать массив, содержащий данные для ваших ячеек.Итак, если у вас есть данные на 100 ячеек, создайте массив из 100 элементов.Если видны только ячейки 10-15, но вам необходимо обновить данные, которые будут отображаться в ячейке 89, просто получите доступ к 89-му элементу массива и обновите его соответствующим образом.Прокрутив вниз до 89-й ячейки, вы просто получаете доступ к массиву по адресу indexPath.row.

1 голос
/ 03 апреля 2012

тех строк, которые не видны, даже нет! Я имею в виду, что рядом с видимыми нет ячеек, плюс еще одна или две по краям.
Так что я думаю, что ваш ответ будет "нет", нет никакого способа сделать это, или вам нужно объяснить больше, зачем вам это нужно!

0 голосов
/ 03 апреля 2012

[tableView reloadData] обновляет только видимые ячейки. Данные ячеек должны быть отделены от табличного представления, и вы можете перезагрузить их, создав метод, например, перезагружает внутренний массив элементов, содержащий данные, представленные в ячейках.

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