thegameg
thegameg

Reputation: 281

UISearchController UISearchBar background

When adding a UISearchController to a UITableView header view, it is impossible to set the background behind the UISearchBar.

The second picture is showing the view when dragging to the bottom.

Normal Dragging

The UITableView is set in the Storyboard without any headers.

self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];

// Setup appearance
self.searchController.searchBar.barStyle = UIBarStyleBlack;
self.searchController.searchBar.barTintColor = BLUE;
self.searchController.searchBar.tintColor = RED;

// Setup logic
self.searchController.searchBar.scopeButtonTitles = @[ NSLocalizedString(@"students", nil), NSLocalizedString(@"professors", nil), NSLocalizedString(@"rooms", nil) ];
self.searchController.searchBar.delegate = self;
self.searchController.searchResultsUpdater = self;
self.tableView.tableHeaderView = self.searchController.searchBar;

self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.hidesNavigationBarDuringPresentation = NO;
self.definesPresentationContext = YES;

I tried adding the background to the storyboard, to the superview, the UITableView, and manually to the UISearchBar.

More code available here.

Upvotes: 2

Views: 1491

Answers (1)

Georgi
Georgi

Reputation: 674

You can try this:

UIView* topview = [[UIView alloc] initWithFrame:CGRectMake(0, -480, self.view.frame.size.width, 480)];
topview.backgroundColor = BLUE;

[self.tableView addSubview:topview];

I have tested with a UITableViewController and it works fine.

Inspired from this answer

Upvotes: 2

Related Questions