Есть ли способ определить выбор индексированного раздела в табличном представлении?

У меня есть индексированное табличное представление, в котором ячейки сгруппированы по разделам в алфавитном порядке. Я хотел бы иметь возможность загружать блок данных, связанных с конкретным разделом, только когда выбран этот индексированный раздел. Другими словами, мое табличное представление - это тип, в котором справа от табличного представления есть поле для выбора, содержащее буквы AZ. Например, вы можете выбрать букву P, чтобы перейти к ячейкам, содержимое которых начинается с буквы P.

Можно ли как-то определить выбор индексированного раздела, чтобы я мог перезагрузить ячейки в этом разделе после загрузки блока данных, связанного с этим разделом?

1 ответ

Решение

Поскольку пользователь использует индекс внизу, UITableViewDataSource tableView:sectionForSectionIndexTitle:atIndex: метод будет вызван.

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

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

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

Другие вопросы по тегам