开发者

iOS: How to replace Search Bar background shine/glow with one color

开发者 https://www.devze.com 2023-03-20 03:49 出处:网络
How do I remove the shine/glow (gradient) from the background of a Search Bar. I would like to replace it with just one color.

How do I remove the shine/glow (gradient) from the background of a Search Bar. I would like to replace it with just one color.

From this:

开发者_开发技巧

iOS: How to replace Search Bar background shine/glow with one color

To something like this

iOS: How to replace Search Bar background shine/glow with one color


Use

searchbar.backgroundImage = //your image here

and you can use a nifty category that I created for uiimage that will generate an image based on a color

https://github.com/Hackmodford/HMUIImage-imageWithColor

So all together it will look like this

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

That will generate the effect you want.


1 To remove the glossy background:

UISearchBar has a subview of class UISearchBarBackground, just cycle through the subviews and when you find a subview of that class, set its alpha to 0.

RubyMotion example:

searchBar.subviews.each { |v| v.alpha = 0 if v.class == UISearchBarBackground }  

2 To add a solid background override the drawRect method:

RubyMotion example:

def drawRect(rect)
  blackColor = '#222222'.to_color
  context = UIGraphicsGetCurrentContext()
  CGContextSetFillColor(context, CGColorGetComponents(blackColor.CGColor))
  CGContextFillRect(context, rect)      
end


Dont think you can, tried it myself and it seems to be part of the API, heres a similar post that asks the same thing The reason the FB one is a solid colour is because afaik the FB app use the Three20 framework. But even with all their scaling down its still a raw 30 megs in size, extreme overkill for a search bar in your case

Dont even know if an image will work as you can't set the area around the bar itself to be clear or transparent to put an image under it

0

精彩评论

暂无评论...
验证码 换一张
取 消