I used below code for changing UISearchBar textfield background color.
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setDefaultTextAttributes
Just try this code
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setBackgroundColor:[UIColor grayColor]];
OR
Try this
- (void)viewDidLoad
{
[super viewDidLoad];
//change the background color
[[self searchViewForTextFieldBg:self.searchTextfield] setBackgroundColor:[UIColor grayColor]];
//change the textcolor
self.searchTextfield.textColor =[UIColor greenColor];
}
- (UITextField*)searchViewForTextFieldBg:(UIView*)view
{
if ([view isKindOfClass:[UITextField class]]) {
return (UITextField*)view;
}
UITextField *searchTextField;
for (UIView *subview in view.subviews) {
searchTextField = [self searchViewForTextFieldBg:subview];
if (searchTextField) {
break;
}
}
return searchTextField;
}