我有一个问题。我试图设置searchResultsTableView的背景。 在我的SearchViewController实现中,在viewDidLoad期间,我想设置self.tableView和self.searchDisplayController.searchResultsTableView的背景。我这样做:
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.title = @"Search";
UIColor *customColor = [UIColor colorWithRed:255.0 green:252.0 blue:227.0 alpha:1.0];
self.tableView.backgroundColor = customColor;
self.searchDisplayController.searchResultsTableView.backgroundColor = customColor;
}
在此之后,我使用自定义浅黄色的tableView,但是,当我点击搜索栏,并且tableView被searchDisplayController.searchResultsTableView替换时,结果为白色。
感谢您的帮助。
答案 0 :(得分:21)
使用此方法..当您开始搜索时,它会调用..
- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView
{
tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"default.png"]];
}
答案 1 :(得分:2)
i-Blue的 didLoadSearchResultsTableView 解决方案效果很好。但是我用这种方式定义搜索结果背景颜色:
- (void)viewWillAppear:(BOOL)animated
{
self.searchDisplayController.
searchResultsTableView.backgroundColor =
[UIColor blueColor];
[super viewWillAppear:animated];
}
到目前为止没有任何问题。
答案 2 :(得分:0)
我有同样的问题,UITableViewStyleGrouped类型的背景是白色的。这对我有用(灵感来自D-Griffin的答案,但增加了一行):
- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView
{
tableView.backgroundView = nil;
tableView.backgroundColor = color;
}
答案 3 :(得分:0)
我无法在评论中回复Matteo,所以我在这里做。 此外,它可能有助于进一步参考。
如果你想添加一个指定RGB代码的颜色,那就是一个简单的技巧。
文档说UIColor方法initWithRed:green:blue:alpha接受CGFLoat值,它们的值介于0.0和1.0之间
所以不要做UIColor(Red:255.0, green:252.0, blue:227.0, alpha:1.0)
,而不是工作,请执行以下操作:
let red:CGFLoat = 255/255
let green:CGFloat = 252/255
let blue:CGFloat = 227/255
UIColor(red:red, green:green, blue:blue,alpha:1.0)
这在searchDisplayController(UISearchDisplayController:controller,didLoadSearchResultsTableView UITableView:tableView)中非常有效。
这很快,但你可以很容易地在obj C中翻译它