附上 iOS 11 样式的 UISearchBar 背景图像



我想通过配置navigationItem.searchController将基于tableHeaderView的搜索栏迁移到iOS 11中新的无缝搜索栏方法。

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

[navigationBar setBackgroundImage:[UIImage imageNamed:@"NavigationBarPromptBackground"] forBarMetrics:UIBarMetricsDefaultPrompt];
[searchBar setBackgroundImage:[UIImage imageNamed:@"NavigationBarBackground"] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

无济于事。搜索栏保留标准导航栏背景(应用了barTintColor),但不显示自定义背景图像。

就我而言,我在视图中有一个UISearchBar,而不是放置在UINavigationItem中。我设置的透明背景图像未显示在iOS 11中。但是,如果我添加一个高度约束,强制搜索栏变小,则背景图像会出于某种原因而被使用。这真的很奇怪的行为,一定是一个错误,但它现在对我有用。

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

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

我在应用程序中做了一件非常相似的事情,并在 IOS11 上发现它现在已经坏了。这是我拥有的代码,它将我的图像设置在搜索和范围栏上,在IOS10之前工作正常:

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

我通过将其添加到 .plist 来修复它

View controller-based status bar appearance = NO

现在我的栏是彩色的,并且随着我选择不同的选项而变化,就像在 IOS11 之前一样。

希望对您有所帮助!

血浆

相关内容

  • 没有找到相关文章

最新更新