Iphone iOS:如何用一种颜色替换搜索栏背景光/辉光

Iphone iOS:如何用一种颜色替换搜索栏背景光/辉光,iphone,objective-c,ios,uisearchbar,searchbar,Iphone,Objective C,Ios,Uisearchbar,Searchbar,如何从搜索栏的背景中删除光泽/辉光(渐变)。我想换一种颜色 由此: 像这样的事情 searchBar.backgroundImage = [UIImage imageWithColor:[UIColor blueColor]]; 我自己也试过了,它似乎是API的一部分,这里有一个类似的问题 FB one是纯色的原因是因为afaik FB应用程序使用Three20框架。但即使他们缩小了规模,它仍然是原始的30兆的大小,在你的情况下,搜索栏的杀伤力太大了 甚至不知道图像是否可以工作,因为您无法将

如何从搜索栏的背景中删除光泽/辉光(渐变)。我想换一种颜色

由此:

像这样的事情

searchBar.backgroundImage = [UIImage imageWithColor:[UIColor blueColor]];

我自己也试过了,它似乎是API的一部分,这里有一个类似的问题 FB one是纯色的原因是因为afaik FB应用程序使用Three20框架。但即使他们缩小了规模,它仍然是原始的30兆的大小,在你的情况下,搜索栏的杀伤力太大了

甚至不知道图像是否可以工作,因为您无法将条形图周围的区域设置为清晰或透明,以便将图像放在其下方

使用

searchbar.backgroundImage = //your image here
您可以使用我为uiimage创建的漂亮类别,它将根据颜色生成图像

所有这些看起来都是这样的

searchBar.backgroundImage = [UIImage imageWithColor:[UIColor blueColor]];

这将产生您想要的效果。

1要删除光泽背景:

UISearchBar有一个类的子视图UISearchBarBackground,只需在子视图中循环,当找到该类的子视图时,将其alpha设置为0

RubyMoon示例:

searchBar.subviews.each { |v| v.alpha = 0 if v.class == UISearchBarBackground }  
def drawRect(rect)
  blackColor = '#222222'.to_color
  context = UIGraphicsGetCurrentContext()
  CGContextSetFillColor(context, CGColorGetComponents(blackColor.CGColor))
  CGContextFillRect(context, rect)      
end
2要添加实心背景,请覆盖drawRect方法:

RubyMoon示例:

searchBar.subviews.each { |v| v.alpha = 0 if v.class == UISearchBarBackground }  
def drawRect(rect)
  blackColor = '#222222'.to_color
  context = UIGraphicsGetCurrentContext()
  CGContextSetFillColor(context, CGColorGetComponents(blackColor.CGColor))
  CGContextFillRect(context, rect)      
end

你试过背景图片吗?但是facebook应用程序只有6MB大小?当你转换你的应用程序上传到商店时,它会缩小很多。我为一家公司开发的一个应用程序是几百兆,因为有三个20兆和一堆图片,下载量约为8mbs