How to change background color of UISearchBar in iOS7
Asked Answered
E

5

75

How to change background color of UISearchBar in iOS7?

enter image description here

not gray, I want to change color like my uinavigationbar

if I Use this code, that's what comes out

searchBar.backgroundColor = [UIColor redColor];

enter image description here

That is not red color!!! This exact same situation as in background color of navigation bar.

Examen answered 10/10, 2013 at 16:17 Comment(1)
is this just me or I can't see your pics?Oma
E
189

Need to use:

searchBar.barTintColor = [UIColor redColor];

enter image description here

All thanks!

Examen answered 10/10, 2013 at 17:0 Comment(7)
Is that a way to remove the transparency in the searchbar ? because the color is not really red !Luigi
@AladdinGallas you simply set UISearchBar's translucent property to NO like so: [searchbar setTranslucent:NO];Neo
i want to add rounded corners to this bar? how can i do that?Tmesis
this does give the bar a red tone, but there is still transparency/alpha to this tone. is there a way to get rid of that and get a pure color as the tint?Beneath
Set the searchbar style to UISearchBarStyleMinimal, than you get the pure color.Argot
I tried this but it didn't change the color for some reason. It only changed the color of the cursor? Anyone have any clues on why this happeneed?Guardant
@1290 please check if you set searchBarStyle = .minimal, change it to defaultDonahoe
I
59

Set the background image to a clear image and you're good to go. This is also pre-ios 7 compatible.

searchBar.backgroundImage = [[UIImage alloc] init]
searchBar.backgroundColor = [UIColor redColor];
Interpose answered 28/7, 2014 at 23:49 Comment(1)
This is a really good answer use clearColor if you want to have a minimal design with white in the textFieldBarber
W
33

If the above solutions don't seem working then make sure that you've set the search bar style to Minimal.

[self.searchDisplayController.searchBar setSearchBarStyle:UISearchBarStyleMinimal];

And for simple searchBar

[self.searchBar setSearchBarStyle:UISearchBarStyleMinimal];

SearchBar Style can also be set from interface builder to Minimal.

Wife answered 22/1, 2015 at 16:10 Comment(0)
W
6

it's not really work for me , or sometimes , if you too , try this

for (UIView *view in [[filterTextField.subviews objectAtIndex:0] subviews]){
                if ([NSStringFromClass([view class]) isEqualToString:@"UISearchBarBackground"])
                    view.alpha = 0;

            }
Was answered 23/3, 2014 at 8:7 Comment(2)
The if clause could simply be if ([view isKindOfClass: UISearchBarBackground).Whitefly
@Whitefly It wouldn't work since it's an undocumented class.Telluride
M
4

If the UISearchBar was defined in the MainStoryBoard, just click on that UISearchBar and take a look to the options you can handle at right. Over there if you click on the fourth tab (the one that looks like a shield) you've got a Bar Tint option. There you can select the UISearchBar color you want.

If not, I guess programatically you can do something like this:

    UISearchBar* sb =[[UISearchBar alloc] init];
    sb.backgroundColor=[UIColor redColor];

I hope this helps!

Myxomycete answered 10/10, 2013 at 16:43 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.