停止UISearchDisplayController显示空单元格

owe*_*nfi 0 uitableview uisearchdisplaycontroller ios

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

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

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

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

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

在此输入图像描述

Eth*_*ick 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];
}
Run Code Online (Sandbox Code Playgroud)

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