6

Мне интересно, как взять контроль над табличным представлением, которое используется UISearchDisplayController. Вы не можете перезаписать свойство searchResultsTableViewUISearchDisplayController, так как это только для чтения.Как контролировать поискResultsTableView UISearchDisplayController?

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

Конечно, вы можете попробовать его без UISearchDisplayController, но я рассчитываю на преимущества этого класса, я просто хочу настроить tableView.

ответ

2

У вас есть TableViewDataSource недвижимости на UISearchDisplayController, этот источник данных производит UITableViewCell. Реализация протокола UITableViewDataSource, и вы будете иметь контроль над кастомизации Tableview в методе:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

6

Вы не можете установить searchResultsTableView, но вы можете манипулировать его в соответствующий метод делегата:

-(void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView { 
    tableView.backgroundColor = self.tableView.backgroundColor; 
    tableView.separatorColor = self.tableView.separatorColor; 
     ... 
+2

Спасибо Феликс, я уже пробовал это успешно, но это не то, что я хочу сделать. Мне бы очень хотелось, если бы я мог установить свой собственный подкласс UITableView. Я не хочу просто манипулировать свойствами searchResultsTableView. – burki

+1

@burki Удалось ли вам использовать подкласс UITableView? У меня такая же проблема. – Adriana