Дублирование границ ячеек строки в UITableViewController - PullRequest
0 голосов
/ 15 сентября 2011

У меня есть контроллер поиска в UITableViewController. Все в порядке, когда я прокручиваю записи, но проблема появляется, когда я в режиме поиска. Набор результатов, возвращаемый из контроллера поиска, ведет себя очень странно. Если я начну прокручивать, то все строки с ячейками и границами начнут нормально прокручиваться, но тогда начальные границы ячеек появятся в верхней части экрана и останутся фиксированными в начальных положениях границ. Итак, я испытываю двойные границы ячеек, которые перекрываются. Кто-нибудь знает, что вызывает такое поведение?

ОБНОВЛЕНИЕ: похоже, что если результат поиска содержит больше строк (например, 9), то прокрутка ведет себя нормально. Но если есть 3 или 4 строки, появляются эти странные фиксированные границы ячеек.

1 Ответ

0 голосов
/ 28 сентября 2011

Наконец-то я нашел проблему.Дело в том, что я понял, что при использовании поиска существуют разные tableViews: tableView и searchResultsTableView.Последний доступен через self.searchDisplayController.searchResultsTableView.Итак, у меня есть метод делегата, который реагирует на ввод текста поиска:

-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{

    if ([searchText length] == 0) {

      [self resetSearchFilters];

    } else {    

       //apply search criteria
   }

  //[self.tableView reloadData]; // that was causing duplication

  [self.searchDisplayController.searchResultsTableView reloadData];
}

Похоже, мне нужно перезагрузить searchResultsTableView вместо основного tableView.

...