3

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

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

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

self.navigationItem.searchController = myUISearchController;

它应该是这样的:

关闭 <code>prefersLargeTitles</code>


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

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

开启 <code>prefersLargeTitles</code>


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

✌️

4

1 回答 1

2

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

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

self.navigationItem.searchController.delegate = self;

...

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

- (void)willDismissSearchController:(UISearchController *)searchController {
    self.navigationController.navigationBar.prefersLargeTitles = YES;
}
于 2017-12-08T17:41:54.867 回答