Есть ли способ определить выбор индексированного раздела в табличном представлении?
У меня есть индексированное табличное представление, в котором ячейки сгруппированы по разделам в алфавитном порядке. Я хотел бы иметь возможность загружать блок данных, связанных с конкретным разделом, только когда выбран этот индексированный раздел. Другими словами, мое табличное представление - это тип, в котором справа от табличного представления есть поле для выбора, содержащее буквы AZ. Например, вы можете выбрать букву P, чтобы перейти к ячейкам, содержимое которых начинается с буквы P.
Можно ли как-то определить выбор индексированного раздела, чтобы я мог перезагрузить ячейки в этом разделе после загрузки блока данных, связанного с этим разделом?
1 ответ
Поскольку пользователь использует индекс внизу, UITableViewDataSource tableView:sectionForSectionIndexTitle:atIndex:
метод будет вызван.
Вы можете добавить логику к этому методу, что, если вы впервые видите данный индекс раздела, вам нужно загрузить данные для раздела.
Но имейте в виду, что задолго до этого вы бы уже сказали таблице, сколько всего разделов существует и сколько строк в каждом из этих разделов. Так что задолго до того, как ваша таблица даже покажет индекс в стороне, вам нужно иметь как минимум загруженные подсчеты для всех разделов, но не обязательно детальные данные.
Также имейте в виду, что пользователь может скользить пальцем вниз по списку индексов. Это означает, что таблица захочет перейти к каждому разделу, когда пользователь перемещает палец. Так что, какую бы ленивую загрузку вы ни делали, вам нужно хорошо с этим справиться (не замедляя работу пользовательского интерфейса).