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

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

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

self.navigationItem.searchController = myUISearchController;

以下是它的显示方式:

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

但是如果我使用大标题和背景图片,那么结果是这样的:
navigationBar.prefersLargeTitles = YES;
[navigationBar setBackgroundImage:bgImage forBarMetrics:UIBarMetricsDefault];

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

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

✌️

最佳答案

除了仅仅依靠背景图像或大标题之外,这是我想出的唯一解决方案。

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

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 - 在带有大标题的导航栏中时,搜索 Controller 栏背景清晰,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47719241/

10-12 00:31
查看更多