2 garaster garaster 于 2012.11.23 13:31 提问

UISearchBar与背景颜色不一致

我想要我的UISearchBar 的颜色和背景颜色一样,看不出来是衔接。但是现在的效果就是这样:

enter image description here

我希望是这样的,就是和背景融为一体的:

enter image description here

1个回答

g989_1314125
g989_1314125   2012.11.23 15:28

用这个代码:

   UITextField *searchField = [self.searchBar valueForKey:@"_searchField"];
    [searchField setBackground:[UIImage imageNamed:@"searchfield_bg"]];

    [self.searchBar setTintColor:[UIColor blackColor]];
    UIImage *searchimg = [UIImage imageNamed:@"search_panel.png"];

    for (UIView *subview in self.searchBar.subviews) {
        if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
            UIView *bg = [[UIView alloc] initWithFrame:subview.frame];
            bg.backgroundColor = [UIColor colorWithPatternImage:searchimg];
            [self.searchBar insertSubview:bg aboveSubview:subview];
            [subview removeFromSuperview];
            [bg release];
            break;
        }
    }

我是用这个代码实现了这样的效果:你只要改一下颜色就行了。

enter image description here

enter image description here

最终效果是这样的

enter image description here

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
自定义UISearchBar的背景颜色、文本框等信息
_searchBar.placeholder = @"hello, world"; _searchBar.backgroundColor = [UIColor redColor];
UISearchBar输入框背景色
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(10, 22, kScreenW - 10, 30)]; searchBar.tintColor = [UIColor darkGrayColor]; searchBar.barTintColor = [UIColor whiteColor]
修改UISearchBar的TextField的背景颜色
UIView *searchTextField = nil; // 经测试, 需要设置barTintColor后, 才能拿到UISearchBarTextField对象 _searchBar.barTintColor = [UIColor clearColor]; searchTextField = [[[_searchBar.subviews firstObject] su
UISearchBar 修改背景颜色透明
输入相关关键字在百度中能搜索出来很多,但是都不靠谱,于是Google了一下,在StackOverFlow中找到一个蛮靠谱的方法,试了可行。   with iOS8 sdks apple moved @"UISearchBarBackground" view one level deeper, so have will need to look at subviews of the ch
UISearchBar去除背景颜色
去除颜色的方法是讲backgroundImage替换成一个自己的Image,我们可以自己通过CG库的方法生成一张无色背景,这样就可以了 UISearchBar * SearchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(self.frame.size.width - 250, 20, 200, 30)]; SearchBar.p
iOS 通过设置颜色去除UISearchBar的灰色背景
实现效果前: 实现效果后: 实现代码如下: @property (weak, nonatomic) IBOutlet UISearchBar *searchbar; 通过UIImage* searchBarBg;调用下面的代码 UIImage* searchBarBg = [self GetImageWithColor:[UIColor cl
如何去除UISearchBar默认的灰色背景颜色
去除UISearchBar默认的灰色背景颜色
去掉UISearchBar的那个灰色背景框,,
在使用那个UISearchBar的时候我个人觉得那个灰色背景框很丑,,。。所以我就想把那个给清楚掉,结果设置背景为无色,什么什么的都设置完了还是不行。然后我去网上看了一下很多人都写了那个遍历subviews这个数组。。。。可是呢还是一样的效果。然后我就各种的乱试,得出了以下两种解决的方法。 1.设置你的barTinColor和你的背景相同就看不出来那个灰色框了哈哈哈哈,这个方法就是拿来骗
【Swift】UISearchBar输入框的背景颜色
let seachTextFeild = searchBar.subviews.first?.subviews.last seachTextFeild?.backgroundColor = UIColor.blueColor()
修改系统UISearchBar搜索框的样式-搜索图片、背景颜色
修改系统搜索框 //searchbar //设置背景图是为了去掉上下黑线 self.searchBar.backgroundImage = [[UIImage alloc] init]; // 设置SearchBar的颜色主题为白色 self.searchBar.barTintColor = [UIColor whiteColor]; self.searchB