ios - 在 UISearchBar 上将半透明设置为 NO

标签 ios uitableview ios7 uisearchbar uisearchbardisplaycontrol

我们有一个 UITableView,它带有一个 searchbar 添加了 searchDisplayController

我们希望在整个应用中关闭半透明。

我关闭了导航栏和其他栏的半透明,但在使用显示 Controller 时没有关闭搜索栏。当我们使用搜索栏而不是显示 Controller 时,在应用程序的一部分中,半透明度设置正确。

如何将显示 Controller 的 UISearchBar 的半透明属性设置为 NO?

编辑: 这是我在 viewDidLoad

中的代码
self.navigationController.navigationBar.translucent = NO;
BOOL t = self.searchDisplayController.searchBar.translucent;
self.searchDisplayController.searchBar.translucent = NO;
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
self.searchDisplayController.searchBar.barTintColor = [UIColor redColor];
UIBarStyle b1 = self.searchDisplayController.searchBar.barStyle;
UISearchBarStyle b2 = self.searchDisplayController.searchBar.searchBarStyle;
BOOL t2 = self.searchDisplayController.searchBar.translucent;

在调试器中运行,t = YES 和 t2 = YES。 b1 = UIBarStyleDefault 和 b2 = UISearchBarStyleDefault。我是否在错误的位置设置了 NO?我尝试了 storyboardviewDidLoad

中的设置

最佳答案

对于 UISearchBarStyleProminent:

1) 请务必在属性检查器中选中搜索栏的“半透明”框。

2) 将以下内容添加到 viewDidLoad:

self.navigationController.navigationBar.translucent = NO; // If you have a navBar
self.searchDisplayController.searchBar.translucent = NO;

编辑 来自 @RudolfAdamkovic :

"I've found that for UISearchBarStyleProminent, executing [the following] helps. That way, you can keep it on in Storyboard."
searchBar.translucent = YES;
searchBar.translucent = NO;

对于 UISearchBarStyleMinimal:

为了让最小的搜索栏不透明,我制定了一个解决方法。

1) 请务必在属性检查器中选中搜索栏的“半透明”框。

2)在viewDidLoad中添加如下代码:

self.navigationController.navigationBar.translucent = NO;
self.searchDisplayController.searchBar.translucent = NO;
self.searchDisplayController.searchBar.backgroundColor = [UIColor desiredColor];

3) 需要在viewController中添加一个UIView。此 View 需要 20 像素的高度,并且应该具有与 searchBar.barTintColor 相同的颜色。

注意:我认为需要此解决方法,因为:"The style UISearchBarStyleMinimal provides no default background color or image but will display one if customized as such."因此,为 UISearchBarStyleMinimal 获得此功能的唯一方法是设置 backgroundColor。

参见 UISearchBar documentation了解更多详情。

关于ios - 在 UISearchBar 上将半透明设置为 NO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19011461/

相关文章:

ios - 如何在 swift 中按字母顺序对 JSON 字符串进行排序?

swift - 在使用 Swift 创建新条目两个 View Controller 后返回原始详细信息 View Controller

ios - 当 numberOfRows 返回一个大数字时,UITableView 需要更长的时间来加载

ios - 按顺序显示两个相同的警报 View 。如何区分警报 1 和警报 2 中的文本?

ios - 从右到左语言的 UIScrollView 方向 RTL

ios - 在 iOS 中更改用户密码时,MSGraphSDK 用户详细信息 API 回调未响应

ios - 如何在启动时以编程方式强制 iPad 进入 1x 或 2x 模式?

uinavigationcontroller - 具有透明内容的 ios 7 View 与以前的 View 重叠

iOS7 不加载高度超过 1950px 的 css 图像

php - 从 PHP 脚本获取 JSON