我希望UITableViewCells
拥有自定义UISearchDisplayController
。 searchResultsTableView
是一个只读属性。我有searchviewcontroller的委托和数据源返回自定义单元格,但是,它似乎仍在使用searchResultsTableView
单元格。使用我自己的UITableViewCells
获得搜索结果的最佳方法是什么?
答案 0 :(得分:10)
搜索开始时,会创建一个全新的UITableView。此新表视图将使用默认设置,与您的表视图不匹配。在你的UISearchDisplayDelegate中,覆盖searchDisplayControllerWillBeginSearch:以重新设置新的UITableView主题,如下所示:
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller {
// Re-style the search controller's table view
UITableView *tableView = controller.searchResultsTableView;
tableView.backgroundColor = [UIColor blueColor];
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
答案 1 :(得分:0)
我不确定我是否完全理解这个问题,但是当你输入一个搜索或者你没有搜索时,你会想要返回两个不同的UITableViewCell
类型(子类?) 。是对的吗?
就像John说的那样,根据你如何连接UISearchDisplayController
,搜索结果表格视图和默认表格视图都会触发cellForRowAtIndexPath
和willDisplayCellForRowAtIndexPath
。在这些方法中,您可以检查哪个tableView要求单元格并根据需要进行自定义。我自定义了我的细胞的背景,文本和颜色,这种方法对我很有用。如果您愿意,我可以发布代码。