2013-07-02 3 views
0

Я видел множество примеров того, как использовать пользовательскую ячейку в UiTableView для отображения данных в столбцах. Я хочу знать, что такое хороший способ взаимодействия с таблицей такого типа, чтобы пользователь мог выбрать столбец для сортировки?UITableView с сортируемыми столбцами

Например, есть три столбца, a, b и c. По умолчанию данные отображаются с сортировкой содержимого, так что столбец a возрастает. Если пользователь {что-то делает}, таблица повторно сортирует и отображает данные, отсортированные по столбцу b или столбцу c по возрастанию и т. Д.

Обратите внимание, что я не спрашиваю, как сортировать данные, создавать структуру данных, или отформатируйте таблицу, как только я узнаю, какой столбец будет сортироваться. Я только спрашиваю, что является лучшим пользовательским взаимодействием для указания сортировки с столбцом x?

+0

Я мог видеть свой путь к решению, если бы был способ идентифицировать, какая ячейка была постукирована ... но поскольку «ячейка» является подкомпоном строки, это кажется нетривиальным. Любые берущие? – Brandon

ответ

0

Просить «лучший» способ сделать что-то довольно субъективно. Есть множество вещей, которые вы могли бы сделать, в зависимости от того, какой вы хотите. Если у вас есть только один раздел, вы можете использовать заголовок раздела с сегментированным элементом управления или три кнопки по одному для каждого столбца для выполнения сортировки. Если вы хотите сделать это, нажав на «ячейку», вы можете сделать ячейки UIButtons, к которым вы можете добавить метод действия, который выполняет сортировку. Вы можете определить, какой столбец используется, нажав кнопки IBOutlets или используя теги.

+0

Я не думал об использовании заголовка раздела или другой пользовательской ячейки. Я думаю, что один из них будет хорошо работать в моем приложении. Благодаря! – Brandon

0

Я думаю, что самый простой способ добиться этого является:

  1. магазин вы данные (а, Ь, с, ...) в отдельном массиве;
  2. Добавить UISegmentedControl с вашими видами сортировки;
  3. [yourTableView reloadData] после сортировки массива данных в обработчике изменений сегмента.
Смежные вопросы