2010-04-12 5 views
8

Документация на самом деле не совсем понятна. Почему UITableViewDataSource попросил предоставить индекс раздела для заголовка раздела индекса?Что такое точка таблицыView: sectionForSectionIndexTitle: atIndex :?

Я имею в виду ... какие варианты использования делают этот метод важным? Когда это называется и почему?

ответ

16

В основном, он определяет, в какой секции отображается представление таблицы, когда вы нажимаете на заголовок индекса указанного раздела. Предположим, вы определяете свои индексы как буквы от A до Z, но на самом деле у вас нет предметов для каждой буквы. В -tableView:sectionForIndexTitle:atIndex: вы должны указать следующий раздел, в котором есть элемент.

4

website Это имеет хороший ответ:

sectionIndexTitlesForTableView: Для того, чтобы правильно оказать индекс, то UITableView должен знать все названия индекса для отображения. Этот метод возвращает массив строк, содержащих все индексы. В нашем случае, A, B, C, D и т.д.

sectionForSectionIndexTitle: Когда вы начинаете прокручивать индекс, таблица должна знать, как далеко вниз/вверх для прокрутки, так что буква ты прикасаешься соответствует соответствующему разделу в таблице. Этот метод возвращает значение индекса (целое число) раздела, к которому вы в данный момент касаетесь индекса.

+0

Означает ли это, что если у меня есть индекс AZ и разделы - названия из AZ, я могу просто пройти через индекс? Если нет, я бы отнесся к индексу к разделу? – brainray

0

Метод, который вы задали о «-tableView: sectionForSectionIndexTitle: atIndex:», соединяет связанные (2) связанные списки, относящиеся к популяризации данных в стиле UITableView.

1-й список: TableView-Section-Title-List "TVSTL", в "приложении для контактов", он составлен/отсортирован людьми LastNames. Заголовки разделов отображаются в левой части экрана.

список: Indexed-List-Titles «ILT», обычно отображаемый в правой части экрана, это может быть произвольная группа индексов о заголовках разделов выше. Этот список предназначен для пользователя, он работает как панель прокрутки.

Документация iOS не очень понятна в отношении этих 2 списков, поскольку текущее листинг «TVSTL» может быть больше или меньше, чем «ILT», ограничений на список больше нет.

И «Приложение APP» - плохой пример, чтобы показать эту критическую точку ... если у вас мало имен людей (скажем, менее 10), или если у вас есть имена пользователей китайского символа 中文, которые имеют нет заголовков, но сгруппированы в разделы, и эти разделы НЕ могут быть проиндексированы.

Следовательно, если эти 2 списка не совпадают, «-tableView: sectionForIndexTitle: atIndex:» предоставляет решение о следующем прокручивании TableView.

Документ Apple в разделе «Заполнение индексированного списка» подробно объясняет предлагаемую им реализацию, но это немного громоздко (с использованием 4 For-loop, 5 Array). Если вы не хотите «Создание табличного представления программно», вы можете пропустить этот код, в противном случае они перечислены в листинге 4-5, листинг 4-6, листинг 4-7, листинг 4-8, листинг 4-9 Table View Programming Guide for iOS

Смежные вопросы