Как использовать UITableView, когда общее количество разделов и строк неизвестно (и потенциально велико) - PullRequest
1 голос
/ 16 сентября 2010

Обычно для использования UITableView число секций и строк в секции известно.Но что, если они не?Я хочу реализовать ленивый поиск, чтобы действительно искать следующее совпадение, когда нужно отобразить новые данные.Что-то в строках: db.prepareSearch(query), а затем вызвать что-то вроде db.nextSearchResult(), когда пришло время отобразить новую ячейку.Результат поиска определяет, требуется ли новый раздел или нет (результаты поиска сортируются по своей сути).

Не уверен, почему это не было сделано с самого начала, поэтому он запрашивает раздел, пока не будет большедоступны или необходимы, а также для ячеек в разделе до тех пор, пока больше не будут доступны или не нужны, вместо того, чтобы указывать итоговые значения, что подразумевает необходимость завершения всего поиска перед началом отображения первых нескольких результатов.

Ответы [ 2 ]

2 голосов
/ 16 сентября 2010

Чтобы получить количество разделов и строк, это просто - спросите свой источник данных.Если ваш источник данных не может вам этого сказать, укажите способ.

Например, если вам нужно запросить таблицу и спросить, сколько строк для ваших разделов, сделайте это.Затем для каждого раздела спросите, сколько строк соответствует этому разделу.

То, на что это похоже, означает, что вы хотите разбить данные на страницы.То есть, когда вы достигаете определенной точки, у вас есть ячейка «загрузить больше данных» или что-то подобное.Это тоже хорошо, просто добавьте сторожевой узел к вашему источнику данных, и, когда появляется этот конкретный элемент, отображайте альтернативную ячейку во время загрузки данных, а затем удаляйте ее после получения следующих данных.Я делаю это в нескольких своих приложениях.

0 голосов
/ 16 сентября 2010

Если я правильно понимаю, в момент рисования / заполнения вы будете знать, сколько у вас строк / разделов.

Если вы меняете базовые данные, используя db.nextSearchResult(), то вы должны вызывать [tableView reloadData], чтобы вызвать обновление пользовательского интерфейса, на данный момент вы должны знать, сколько у вас разделов и строк.

Я должен признать, что я немного запутался в точном вопросе здесь.

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