停止UISearchDisplayController显示空单元格

时间:2013-12-06 22:21:18

标签: ios uitableview uisearchdisplaycontroller

我在相当标准的tableview上实现了一个UISearchDisplayController(表+搜索的数据源相同)。我遇到的问题是当结果没有填满屏幕时,实际结果下面会有“伪”行。

我能够设置背景颜色,但找不到抑制这些行/分隔符的好方法。它们似乎与我的numberOfRowsInSection:委托响应分离。

如果我设置searchResultsTableView.separatorColor(绿色),它只会更改实际结果行。

我能够将separatorStyle更改为UITableViewCellSeparatorNone,但是我必须在实际结果上手动重新创建分隔符,并且有边缘情况(比如选择颜色会覆盖我的视图)。

是否有一种干净的方法来隐藏附加屏幕截图中指出的行?

enter image description here

1 个答案:

答案 0 :(得分:6)

您可以为搜索显示控制器实现此委托方法:

- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView;
{
    UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 1)];
    footer.backgroundColor = [UIColor clearColor];
    [tableView setTableFooterView:footer];
}

这将使最后几行消失。您当然可以使用您选择的任何其他方法执行此操作。例如,如果你想在普通的UITableView上产生相同的效果,可以在UIViewController的viewDidLoad中执行此操作。