我在UITableViewController中有一个搜索控制器。我在滚动记录时一切正常,但是当我处于搜索模式时会出现问题。从搜索控制器返回的结果集非常奇怪。如果我开始滚动,那么带有单元格和边框的整行开始正常滚动,但是初始单元格边框出现在屏幕顶部并保持固定在初始边框位置。所以我遇到了重叠的双行单元格边框。有谁知道导致这种行为的原因是什么?
更新:看起来如果搜索结果包含更多行(如9),则滚动行为正常。但如果有3行或4行,那么就会出现那些奇怪的固定单元格边界。
答案 0 :(得分:0)
最后,我发现了问题。事情是我意识到使用搜索时有不同的tableView: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。