UITableView 中 UISearchController 的背景颜色
Posted
技术标签:
【中文标题】UITableView 中 UISearchController 的背景颜色【英文标题】:Background color for UISearchController in UITableView 【发布时间】:2015-07-16 19:55:26 【问题描述】:我有一个 SearchController 的搜索栏以编程方式插入 UITableView 的 tableHeaderView。当我拉起以查看搜索栏或刷新表格时,我会在刷新活动指示器和搜索栏之间看到这个奇怪的深灰色,您可以在下图中看到(即使我删除了刷新,此背景颜色仍然存在)查看):
tableView.tableHeaderView = searchController.searchBar
我尝试了各种我能想到的方式来改变这个背景颜色:
tableView.backgroundColor = UIColor.redColor()
tableView.tableHeaderView!.backgroundColor = UIColor.redColor()
searchController.searchBar.backgroundColor = UIColor.redColor()
view.backgroundColor = UIColor.redColor()
没有任何作用。这种深灰色不是我在项目中使用的自定义颜色之一,所以我知道我没有手动设置它。取出 searchController 后,一切都像以前一样工作:深灰色被其他地方看到的浅灰色取代。
【问题讨论】:
searchController.view.backgroundColor = UIColor.redColor() ? 我实际上并不希望它是红色的,只是检查什么有效。这些都没有改变深灰色的背景颜色。 试试这个可能会有帮助 self.tableView.contentOffset = CGPointMake(0, self.searchDisplayController.searchBar.frame.size.height) 【参考方案1】:将 UITableView 的 backgroundView 设置为新的无用视图:
self.tableView.backgroundView = [UIView new];
看起来不合逻辑,但效果很好:)
【讨论】:
【参考方案2】:Cameron E 在 Swift 中的正确答案:
tableView.backgroundView = UIView()
请注意,self.tableView.backgroundView = nil
不起作用。
【讨论】:
【参考方案3】:试试这个:
[searchController.searchBar setBarTintColor:[UIColor blackColor]];
[searchController.searchBar setTintColor:[UIColor whiteColor]];
希望这会有所帮助。
【讨论】:
这正是我想要的。【参考方案4】:只需设置一个空视图作为 UITableView 的背景视图
[self.tableView setBackgroundView:[[UIView alloc] initWithFrame:CGRectZero]];
【讨论】:
【参考方案5】:尝试改变颜色
self.navigationController?.navigationBar = UIColor(red: 1, green: 1, blue: 1, alpha: 1)
【讨论】:
以上是关于UITableView 中 UISearchController 的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章
definePresentationContext 应设置为 YES,但在与 UISearchController 结合使用时会中断导航
防止 UISearchController 在第一次击键/字符时显示 searchResultsViewController
在 UITableView 中的 UINib 中重新加载 UITableView
iOS UITableView删除组中唯一行,即[UITableView _endCellAnimationsWithContext:] warning