How to change background color of UISearchBar in iOS7

57,965

Solution 1

Need to use:

searchBar.barTintColor = [UIColor redColor];

enter image description here

All thanks!

Solution 2

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];

Solution 3

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.

Solution 4

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;

            }

Solution 5

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!

Share:
57,965
dev.nikolaz
Author by

dev.nikolaz

Updated on July 05, 2022

Comments

  • dev.nikolaz
    dev.nikolaz almost 2 years

    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.

  • Aladdin Gallas
    Aladdin Gallas over 10 years
    Is that a way to remove the transparency in the searchbar ? because the color is not really red !
  • Pavan
    Pavan over 10 years
    @AladdinGallas you simply set UISearchBar's translucent property to NO like so: [searchbar setTranslucent:NO];
  • Anish
    Anish about 10 years
    i want to add rounded corners to this bar? how can i do that?
  • franklsf95
    franklsf95 almost 10 years
    The if clause could simply be if ([view isKindOfClass: UISearchBarBackground).
  • StackRunner
    StackRunner almost 10 years
    This is a really good answer use clearColor if you want to have a minimal design with white in the textField
  • Julian B.
    Julian B. over 9 years
    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?
  • Jeroen de Leeuw
    Jeroen de Leeuw over 9 years
    Set the searchbar style to UISearchBarStyleMinimal, than you get the pure color.
  • jbouaziz
    jbouaziz over 9 years
    @franklsf95 It wouldn't work since it's an undocumented class.
  • Admin
    Admin over 7 years
    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?
  • Milan Kamilya
    Milan Kamilya about 7 years
    @1290 please check if you set searchBarStyle = .minimal, change it to default