Search code examples
iosios7uisearchbaruitabbar

Colour changed in iOS7.1, how to change searchBar colour?


On iOS7.0.3 - 7.0.6, my searchBar colour is Gold/yellow colour like this: enter image description here

But on iOS 7.1, colour becomes like this:

enter image description here

I set

searchBar.tintColor = [UIColor clearColor];
searchBar.backgroundColor = goldColor;
searchBar.tintColor = [UIColor blackColor];

I've tried so many ways and all are failed. Can anyone figure out what changes in iOS 7.1?

============== My fix ===============

I fix this problem by covering a view on searchBar and add the search text filed as subview on this new view.

I need point out that the gold status bar is a subView of searchBar, and it's frame is CGRectMake(0, -20, 320, 20) and it's background colour is gold.

At first, I set this:

_searchBar.translucent = YES;
_searchBar.scopeBarBackgroundImage = [self imageWithColor:UWGold];

and looks like this:

enter image description here

Then, I expand the view cover the status bar, I changed the view's frame.size.height + searchBar's height, then use this line:

UITextField *textSearchField = [_searchBar valueForKey:@"_searchField"];

to get the textSearchField, then add this textSearchField to the cover view.

At last, the searchBar is exactly like when on iOS 7.0

enter image description here

Not a good way, I need figure out what changes on iOS 7.1 and use a right way to implement this.


Solution

  • Try this:

    if(IOS_7)
    {
    self.searchBar.searchBarStyle = UISearchBarStyleMinimal;
    self.searchBar.backgroundImage = [UIImage imageWithColor:[UIColor redColor] cornerRadius:5.0f];
    }
    

    Hopefully this will help you.