获取多个表视图实例以匹配

时间:2013-03-11 16:25:16

标签: user-interface uitableview uistoryboard uisearchdisplaycontroller

我正在尝试将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;

tableViewsearchResultsTableView(“常规”)和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];

1 个答案:

答案 0 :(得分:0)

移动代码以将searchResultsTableView设置为searchDisplayController:willShowSearchResultsTableView:,这是UISearchDisplayDelegate的一种方法,可以解决这个问题。