在UITableViewController中复制行单元格边框

时间:2011-09-15 10:27:58

标签: iphone objective-c scroll uitableview border

我在UITableViewController中有一个搜索控制器。我在滚动记录时一切正常,但是当我处于搜索模式时会出现问题。从搜索控制器返回的结果集非常奇怪。如果我开始滚动,那么带有单元格和边框的整行开始正常滚动,但是初始单元格边框出现在屏幕顶部并保持固定在初始边框位置。所以我遇到了重叠的双行单元格边框。有谁知道导致这种行为的原因是什么?

更新:看起来如果搜索结果包含更多行(如9),则滚动行为正常。但如果有3行或4行,那么就会出现那些奇怪的固定单元格边界。

1 个答案:

答案 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。