我希望通过配置Person
,将基于tableHeaderView
的搜索栏迁移到iOS 11中的新无缝搜索栏方法。
由于我的导航栏使用自定义背景图片,因此我想知道如何将相同的背景图像应用于搜索栏。我试过了
navigationItem.searchController
无济于事。搜索栏保留标准导航栏背景(应用[navigationBar setBackgroundImage:[UIImage imageNamed:@"NavigationBarPromptBackground"] forBarMetrics:UIBarMetricsDefaultPrompt];
[searchBar setBackgroundImage:[UIImage imageNamed:@"NavigationBarBackground"] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
),但不显示自定义背景图像。
答案 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之前选择不同的选项而改变。
希望这能帮到你!
血浆