将搜索栏设置为非半透明

时间:2014-03-16 15:55:34

标签: objective-c ios7 uisearchbar ios7.1

我在tableview中使用searchDisplayController。我有功能,我现在正在配置UI。

我希望搜索栏(包括范围栏)为红色,文本为白色。我是通过Interface Builder完成的,看起来很好。

构建它时,它看起来像这样(忽略tableview中的白色块): enter image description here

颜色应该是这样的,Interface Builder会生成它。

enter image description here

搜索栏是半透明的。我在搜索栏中取消选中Translucent。

阅读this回答,我尝试了

self.searchDisplayController.searchBar.translucent = NO;

在我的viewDidLoad和viewWillAppear中。不幸的是,两者都没有效果。

似乎没有任何效果。我在iOS7和iOS7.1下试过这个。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

以下内容适用于我使搜索栏变为不透明的红色:

UIGraphicsBeginImageContextWithOptions(CGSizeMake(10,10), YES, 0);
CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(), [UIColor redColor].CGColor);
CGContextFillRect(UIGraphicsGetCurrentContext(), CGRectMake(0,0,10,10));
UIImage* red = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
searchBar.backgroundImage = red;

它适用于我,包括你的情况,即属于具有表视图控制器的UISearchDisplayController的搜索栏。