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:
开发者_开发技巧To something like this
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
精彩评论