iOS - UISearchBar 文本框背景黑色焦点

iOS - UISearchBar textfield background black on focus

我对 UISearchBar 有疑问。在 Storyboard 中,它的条形色调设置为 clearColor,它的搜索样式设置为最小,条形样式设置为默认。我也有自定义背景图片。

首次加载视图时,默认情况下是这样的:

这正是我想要的样子。

现在,当我按下它输入一些文本时,会发生以下情况:

背景变黑。如果我取消或停止搜索,它会完美地返回到第一张图片。 我已经尝试了很多东西,在代码中设置了所有内容,但我似乎无法改变这个黑色背景。我只是希望它是清晰的颜色。

在 viewDidLoad 上尝试此代码

self.searchController.searchBar.barStyle = UIBarStyleBlack;
self.searchController.searchBar.translucent = YES;

而且我发现在 UISearchController 中有那些 属性 可能会影响 UISearchBar 的显示。

@property (nonatomic, assign) BOOL dimsBackgroundDuringPresentation __TVOS_PROHIBITED; // default is YES, and has the same behavior as obscuresBackgroundDuringPresentation.
@property (nonatomic, assign) BOOL obscuresBackgroundDuringPresentation NS_AVAILABLE_IOS(9_1); // default is YES

也尝试将它们设置为 NO

self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.obscuresBackgroundDuringPresentation = NO;

似乎是黑色背景,因为透明条色调 Color.There 不需要将条形色调颜色设置为 透明颜色 。将其设置为 默认.

其实UISearchBar提供了设置Searchbar文本框背景的方法。它是:

- (void)setSearchFieldBackgroundImage:(nullable UIImage *)backgroundImage forState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;

您可以使用它来设置任何图像。