停止显示空白单元格的UISearchDisplayController

我已经实现了一个相当标准的tableview(表+search相同的数据源)的UISearchDisplayController。 我遇到的问题是结果不填充屏幕时,实际结果下面有“伪”行。

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

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

我能够将separatorStyle更改为UITableViewCellSeparatorNone,但是我不得不手动重新创build实际结果上的分隔符,并有边缘情况下(如select颜色掩盖了我的看法)。

有没有一种干净的方式来隐藏所附的截图中指出的行?

在这里输入图像说明

您可能可以为search显示控制器实现此代理方法:

 - (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]; } 

这将使最后几行消失。 你当然可以用你select的其他方法来做到这一点。 例如,你可以在UIViewController的viewDidLoad中做到这一点,如果你想在一个正常的UITableView相同的效果。