Следующая ситуация принадлежит приложению для iPad, я продолжаю работать для своей компании.
Таким образом, у меня есть массив типа "Человек", который содержит информацию списка людей. На начальной странице у меня есть таблица, которая отображает их имя и изображение. Когда это загружается, результаты разгруппировываются. Я задавался вопросом, был ли способ легко сгруппировать эти результаты щелчком кнопки на основе чего-то как местоположение или бизнес-заголовок. Причина они не сгруппированы, когда они загружаются, состоит в том, потому что полномочия выше затем я считал необходимым отобразить необработанный список сначала. Какие-либо идеи сделать что-то как этот?Заранее спасибо!
Вы захотите использовать «разделы» для разделения таблицы.
Сначала вам нужно отсортировать источник данных по нужным группам, а затем отразить его в представлении.
Словарь может легко представлять сгруппированные данные. Смоделируйте каждую группу как массив, содержащий записи для этой группы, а затем добавьте его в словарь с ключом, представляющим раздел.
Когда данные разгруппированы, вы все равно можете использовать словарь, но с одной записью, а не с несколькими, а затем отразить это в пользовательском интерфейсе.
Таким образом, когда вас спросят, сколько разделов в таблице, вы можете вернуть [количество словарей];
, а затем, когда вас спросят количество строк, вы можете сделать что-то вроде [[словарь objectForKey @ "myKey"] count];
И так далее.
Когда вы перенастроили свой источник данных, вы можете вызвать [self.tableView reloadData];
, чтобы перезагрузить таблицу с разделами.
Вам придется удалить UITableView и добавить на его место другой через [[UITableViewController alloc] initWithStyle: UITableViewStyleGrouped];
. Вы не можете изменить существующий стиль во время выполнения.
Другой способ сделать это - сгруппировать его с самого начала, но вернуть 1 для - (NSInteger) numberOfSectionsInTableView: (UITableView *) tableView;
, если он «разгруппирован», и вернуть все строки для - (NSInteger) tableView: (UITableView *) номер таблицыOfRowsInSection: (NSInteger) section
, когда он сгруппирован, сделайте это обычным способом.