UISearchBar clear background image

Tengo el siguiente código para mi UISearchBar:

UISearchBar * searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 300, 44)]; searchBar.placeholder = @"Search for a tag"; searchBar.delegate = self; 

El resultado es el siguiente:

introduzca la descripción de la imagen aquí

Me gustaría cambiar el background blanco a un color claro. ¿Cómo hago esto? Básicamente quiero que el color de background textField sea claro .

Haga una image transparente y utilice esa image con el código siguiente.

 [search setSearchFieldBackgroundImage:[UIImage imageNamed:@"bg_search.png"] forState:UIControlStateNormal]; 

Si respalda iOS 5 y versiones superiores, simplemente haga lo siguiente:

 [self.searchBar setBackgroundImage:[[UIImage alloc] init]]; 

Prueba debajo del código para borrar el color de background:

 //to clear searchbar backgraound - (void) clearSearchBarBg { for (UIView *subview in theSearchBar.subviews) { if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) { [subview removeFromSuperview]; break; } } } 

Prueba esto:

 [[searchBar.subviews objectAtIndex:0] removeFromSuperview]; 

usa este código:

 searchBar.backgroundColor=[UIColor clearColor]; 

para iOS 7, usa

 [searchBar setBarTintColor:[UIColor whiteColor]]; 

para ios 6, usa

 [searchBar setTintColor:[UIColor whiteColor]]; 

Ok, este es un background claro, el marcador de position "Buscar" es gris y como es el ícono del catalejo.

 [self.searchBar setPlaceholder:@"Search "; //the spaces push it to left align as there is no left align for the UISearchBar [self.searchBar setBackgroundImage:[UIImage imageNamed:@"thatSearchIconThing"] forBarPosition:UIBarPositionTop barMetrics:UIBarMetricsLandscapePhone]; //my app is landscape [self.search setSearchBarStyle:UISearchBarStyleMinimal];