我正在尝试将searchResultsTableView
中返回的单元格看作与“常规”非搜索表视图中的单元格一样。这是我的regular view。
第一次搜索时,结果的样式与“常规”表格视图完全相同。但是,一旦取消searchDisplayController并再次点击“搜索”按钮,you'll get this。
我认为在第一次加载搜索显示控制器后没有设置背景。
我使用tableView:cellForRowAtIndexPath:
在UITableViewCell
中实例化单元格,而不是自定义子类。以下是该方法的其余部分:
PersonInfo *info = nil;
if (tableView == self.searchDisplayController.searchResultsTableView) {
info = [self.filteredPeopleList objectAtIndex:indexPath.row];
} else {
info = [self.peopleList objectAtIndex:indexPath.row];
}
cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cellBk.png"]];
cell.detailTextLabel.textColor = [UIColor whiteColor];
cell.backgroundColor = [UIColor clearColor];
cell.imageView.image = info.image;
cell.textLabel.text = info.name;
cell.detailTextLabel.text = info.title;
return cell;
在tableView
内searchResultsTableView
(“常规”)和viewDidLoad
的设置如下:
//Set the default tableView style
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
//Set the self.searchDisplayController background stuff
self.searchDisplayController.searchResultsTableView.backgroundColor = [UIColor clearColor];
self.searchDisplayController.searchResultsTableView.opaque = NO;
self.searchDisplayController.searchResultsTableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
[self.searchDisplayController.searchResultsTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
[self.tableView reloadData];
答案 0 :(得分:0)
移动代码以将searchResultsTableView
设置为searchDisplayController:willShowSearchResultsTableView:
,这是UISearchDisplayDelegate的一种方法,可以解决这个问题。