2012-06-07 9 views
5

me gustaría conseguir algo como esto:¿Se pueden eliminar los bordes o las fronteras de UISearchBar?

enter image description here

Pero yo no era capaz de eliminar de fondo original (estoy usando iOS5). Sin embargo, parece que Apple hizo:

enter image description here

¿Cómo puedo crear lo que yo quiero? O, no hay otra opción y la única alternativa que tengo es personalizar un UITextField?

Gracias por sugerencias e ideas!

EDIT: Después de la primera respuesta, esto es lo que tengo:

enter image description here

¿Hay alguien cómo puedo eliminar el fondo interna blanca sin hacer todo el cambio de su valor alfa semitransparente componente? Por cierto, ¿puedo cambiar el color blanco por el negro?

Respuesta

7

Prueba este código, se trabajó para mí

for (id img in yourSearchBar.subviews) { 
     if ([img isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) { 
      [img removeFromSuperview];  
     } 
    } 

En el yourSearchBar código anterior es la barra de búsqueda de la que desea eliminar el fondo, Y el bucle for es la búsqueda de la imagen de fondo de UISearchBar

de
+0

Gracias por la respuesta. Ayer probé y no funcionó, sin embargo hoy está funcionando. ¿Sabes cómo puedo eliminar el fondo interior blanco? Edité la pregunta con esta información. – Ricardo

+1

falta esta línea para que funcione completamente: [[[subvistas searchBar] objectAtIndex: 0] setHidden: YES]; de Hassan Shahzad a continuación. – David

+0

Una respuesta increíble salvó mi vida, gracias a un millón –

6

Realmente debería usar el protocolo de apariencia. Usted puede cambiarla por una sola instancia de la UISearchBar,

UIImage *searchBg = [UIImage imageNamed:@"search_bar.png"]; 
[searchBar setBackgroundImage:searchBg]; 

o si tiene varias barras de búsqueda a través de diferentes escenas de este tema voluntad todos los casos (pero llamar en alguna parte sensata como el AppDelegate para asegurar las barras son todos configurado correctamente antes de ver cualquiera de ellos

UIImage *searchBg = [UIImage imageNamed:@"search_bar.png"]; 
[[UISearchBar appearance] setBackgroundImage:searchBg]; 

actualización:. bien, para cambiar el fondo de una barra de búsqueda que usted debe utilizar uno de los siguientes,

sola instancia de SearchBar:

[searchBar setSearchFieldBackgroundImage:searchBg forState:UIControlStateNormal]; 

Todas las instancias de UISearchBars:

[[UISearchBar appearance] setSearchFieldBackgroundImage:searchBg forState:UIControlStateNormal]; 

Espero que esto ayude.

1

En iOS 7 Puede acaba de establecer:

searchBar.barTintColor = [UIColor clearColor]; 
Cuestiones relacionadas