Reputation: 281
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.
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
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