iOS 11.2 - 在带有大标题的导航栏中时,搜索控制器栏背景清晰

Posted

技术标签:

【中文标题】iOS 11.2 - 在带有大标题的导航栏中时,搜索控制器栏背景清晰【英文标题】:iOS 11.2 - Search Controller Bar background is clear when inside Navigation Bar with Large Title 【发布时间】:2017-12-08 17:18:03 【问题描述】:

所以我刚刚更新到 ios 11.2,现在我的 UISearchController 的搜索栏搞砸了。当搜索处于活动状态时,搜索栏区域后面的背景变为不可见/清晰/透明。

我建立了一个测试项目来确保我没有发疯。这是原始设置:

navigationBar.translucent = YES;
navigationBar.barTintColor = [UIColor orangeColor];

self.navigationItem.searchController = myUISearchController;

如下所示:


但如果我使用大标题和背景图片,那么结果是这样的:

navigationBar.prefersLargeTitles = YES;
[navigationBar setBackgroundImage:bgImage forBarMetrics:UIBarMetricsDefault];


如果有人找到解决方案,我将非常感谢您的帮助。

✌️

【问题讨论】:

同样的事情发生在我身上。既然你已经做了一个测试项目,那就用它来填充雷达:) 【参考方案1】:

除了放弃背景图片或大标题之外,这是我想出的唯一解决方案。

在搜索出现之前禁用大标题,并在它关闭时再次启用它。有点烂,但似乎可以解决问题。

self.navigationItem.searchController.delegate = self;

...

- (void)willPresentSearchController:(UISearchController *)searchController 
    self.navigationController.navigationBar.prefersLargeTitles = NO;


- (void)willDismissSearchController:(UISearchController *)searchController 
    self.navigationController.navigationBar.prefersLargeTitles = YES;

【讨论】:

以上是关于iOS 11.2 - 在带有大标题的导航栏中时,搜索控制器栏背景清晰的主要内容,如果未能解决你的问题,请参考以下文章

iOS 11.2自定义导航栏无限循环

带有 SearchBar 的 iOS 11 导航栏大小

在 Xcode 中创建带有标题的大导航栏

iOS 11 大标题导航栏的图像

创建带有 2 行的大标题导航栏的问题 |斯威夫特 5

带有大标题的导航栏黑线