附加iOS 11风格的UISearchBar背景图片

时间:2017-07-05 13:36:42

标签: ios uinavigationcontroller uikit uisearchbar ios11

我希望通过配置Person,将基于tableHeaderView的搜索栏迁移到iOS 11中的新无缝搜索栏方法。

由于我的导航栏使用自定义背景图片,因此我想知道如何将相同的背景图像应用于搜索栏。我试过了

navigationItem.searchController

无济于事。搜索栏保留标准导航栏背景(应用[navigationBar setBackgroundImage:[UIImage imageNamed:@"NavigationBarPromptBackground"] forBarMetrics:UIBarMetricsDefaultPrompt]; [searchBar setBackgroundImage:[UIImage imageNamed:@"NavigationBarBackground"] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault]; ),但不显示自定义背景图像。

2 个答案:

答案 0 :(得分:3)

在我的情况下,我在视图中有一个UISearchBar,而不是放在UINavigationItem中。我正在设置的透明背景图像没有出现在iOS 11中。但是,如果我添加一个强制searchBar变小的高度约束,则会出于某种原因使用背景图像。这是一个奇怪的行为,必须是一个bug,但它现在对我有用。

如果我执行以下操作,则会使用背景图像:

[[searchBar.heightAnchor constraintEqualToConstant:44.0] setActive:YES];

答案 1 :(得分:1)

我在我的应用程序中执行了类似的操作,并在IOS11上发现它现在已经坏了。这是我在搜索和范围栏中设置我的图像的代码,工作正常到IOS10:

[searchBarSearch setBackgroundImage:image];
[searchBarSearch setScopeBarBackgroundImage:image];

我通过将其添加到.plist

来修复它
View controller-based status bar appearance = NO

现在我的栏已经着色并且随着IOS11之前选择不同的选项而改变。

希望这能帮到你!

血浆