设置searchResultsTableView的背景

时间:2011-02-28 13:59:57

标签: iphone objective-c

我有一个问题。我试图设置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替换时,结果为白色。

感谢您的帮助。

4 个答案:

答案 0 :(得分:21)

使用此方法..当您开始搜索时,它会调用..

- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView
{
    tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"default.png"]];
}

Screenshot of search results table view with custom background.

答案 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中翻译它