我们有一个 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?我尝试了 storyboard
和 viewDidLoad
最佳答案
对于 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/