设置搜索栏范围的背景颜色

Posted

技术标签:

【中文标题】设置搜索栏范围的背景颜色【英文标题】:Set background color for scope of searchbar 【发布时间】:2014-07-18 08:51:02 【问题描述】:

UISearchbar 视图有一个默认的灰色区域。向下滚动时,我们可以看到灰色区域。我需要为灰色区域设置backgroundColor

我已将 UISearchBar 添加到 UITableView 标头。并且UITableView中有一个刷新控件。现在的问题是当我拉下刷新控件时它看起来很奇怪。因为刷新控件采用表格视图的背景(白色),而搜索视图采用默认的backgroundColor(灰色)

如果我将backgroundColor 设置为UISearchbar,则它仅适用于UISearchBar,而不适用于UISearchBar 的范围。有了这个结果,我在想灰色区域是否属于哪个视图。我敢肯定没有多余的风景。我已将颜色设置为 tableviewrefresh viewUISearchBarself.view,但注意适用于灰色区域。

谢谢,

【问题讨论】:

[SearchItem setBackgroundColor:[UIColor redColor]]; @KiritModi,正如我所提到的,如果我为搜索栏设置背景,它只适用于视图周围而不是范围。 @All,下面的行解决了我的问题,但不知道如何:) [tableview setBackgroundView:[UIImageView new]]; UIView 也可以代替 UIImageView。基本上设置一个无色的背景视图,这样就不会影响其他视图。 【参考方案1】:

在放置灰色区域的searchbar 内添加view。将其命名为 searchBarView 或您喜欢的名称。

self.scrollView.searchBarView.backgroundColor = [UIColor yourcolor];

应该做的伎俩

【讨论】:

感谢您的回复!我没有添加任何滚动视图,滚动我的意思是默认的tableview滚动。 在里面添加另一个视图,并使用CGRect动态定位它或通过故事板静态放置它并执行上述操作。如果它解决了你的问题,请在答案旁边打勾:)谢谢【参考方案2】:
searchbar = [[UISearchBar alloc]initWithFrame:CGRectMake(27, -5, 143, 44)];
        searchbar.tag = indexPath.row+1;
        searchbar.delegate = self;
        searchbar.backgroundColor = [UIColor clearColor];
        if (IS_ios_7) 
            [searchbar setBarTintColor:[UIColor clearColor]];
        else
            [[ [searchbar subviews] objectAtIndex:0] removeFromSuperview];
        

【讨论】:

【参考方案3】:

对于透明scope bar,将带有Alpha 的1Pixel PNG 添加到范围栏。

否则保持白色,即使是透明的 searchBar 背景。

【讨论】:

以上是关于设置搜索栏范围的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

更改操作栏上方系统设置菜单的背景颜色

编辑特定标签栏项目的背景颜色

怎么设置Android Studio代码字体及背景颜色

win10怎样修改窗口背景颜色?

UISearchBar:清除背景颜色或设置背景图像[重复]

CAD看图的背景颜色怎么设置为黑色