UISearchController UISearchBar 背景

Posted

技术标签:

【中文标题】UISearchController UISearchBar 背景【英文标题】:UISearchController UISearchBar background 【发布时间】:2015-02-25 08:45:45 【问题描述】:

当给 UITableView 头部视图添加 UISearchController 时,不可能在 UISearchBar 后面设置背景。

第二张图是拖到底部时的视图。

UITableView 在 Storyboard 中设置,没有任何标题。

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;

我尝试将背景添加到情节提要、超级视图、UITableView 以及手动添加到 UISearchBar。

更多代码here.

【问题讨论】:

【参考方案1】:

你可以试试这个:

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

[self.tableView addSubview:topview];

我已经用UITableViewController 进行了测试,它工作正常。

灵感来自this answer

【讨论】:

我使用this hack 添加了一个空视图。谢谢

以上是关于UISearchController UISearchBar 背景的主要内容,如果未能解决你的问题,请参考以下文章

UISearchController

UISearchController 与单元格布局混淆

UISearchController 未显示

UISearchController 没有响应

UISearchController 保留问题

UISearchController:searchResultsController 不显示