2013-06-05 3 views
1

Я хочу сделать следующее: это будет в основном табличный вид, отображающий некоторые ячейки со многими значениями.Как использовать «подсписок» в UITableView и с панелью поиска?

enter image description here

Когда выбираются значение-клетки, открывает новые клетки subvalues ​​от стоимости избранника.

enter image description here

Это также позволит пользователю в состоянии сделать поиск между этими клетками.

enter image description here

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

  • Каков наилучший способ отображения этих новых ячеек при прослушивании ячеек значений (и, конечно, скрыть их снова в случае ячейки с повторным отображением значений).
  • Самый сложный момент, кажется, здесь, как я могу использовать панель поиска, чтобы смотреть ТОЛЬКО для данных в ячейках значений, а не в значениях подвариантов? Например, если пользователь уже постучал и открыл подвыборы из значений 2 и 5, если он вставляет «2» в строку поиска, ячейка со значением «5» и все ее ячейки субкатегорий будут скрыты, а «2» - один будет отображаться вместе с его значениями.

Благодарим за помощь.

ответ

1

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

Простейший способ состоит в том, чтобы добавить больше строк в массив данных, когда вы расширяете ячейку и удаляете их при крахе. Настройте внешний вид «ячеек под-списка» и отслеживайте, какая ячейка в настоящее время расширена. Вы также можете посмотреть на использование https://github.com/OliverLetterer/UIExpandableTableView (я не использовал его, поэтому не могу прокомментировать его).

Самая сложная точка, кажется, здесь, как я могу использовать панель поиска только для поиска данных в стоимостном клетках, а не в подзначение из них? Например, если для пользователь уже постучал и открыл значения из значений 2 и 5, если он вставляет «2» в строку поиска, ячейка со значением «5» и все ее ячейки подъячейки будут скрыты, но «2» будет отображаться с его значениями.

Это более легкая часть, я бы сказал. Вы отвечаете за поиск данных табличного представления и предоставление фильтрованного списка контроллеру отображения поиска. Это делается с помощью этих двух методов:

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString 
{ 
    [self filterContentForSearchText: searchString 
           scope: [self.searchDisplayController.searchBar scopeButtonTitles][[self.searchDisplayController.searchBar selectedScopeButtonIndex]]]; 
    return YES; 
} 


- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption 
{ 
    [self filterContentForSearchText: [self.searchDisplayController.searchBar text] 
           scope: [self.searchDisplayController.searchBar scopeButtonTitles][searchOption]]; 
    return YES; 
} 

В методе filterContentForSearchText:scope:, поиск только «супер-лист клеток», не «суб-список ячеек».Вы можете настроить ячейку таблицы отображения поиска, чтобы она выглядела как супер-список/подписок: UITableView Controller with prototype custom cell and search display controller tableview

Надеюсь, это поможет!

1

Каков наилучший способ отображения этих новых ячеек при прослушивании ячеек значений (и, конечно, скрыть их снова в случае ячейки с повторным отображением значений).

Посмотрите на TLIndexPathTools project на GitHub. Это упрощает построение динамических таблиц с минимальными усилиями. В частности, он автоматически обновляет пакетные обновления для анимации между состояниями. Есть несколько примеров проектов, наиболее похожая на вашу ситуацию - collapsable "Outline" project.

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