2012-06-07 5 views
5

Ich mag so etwas bekommen:Können Hintergrund oder Rahmen von UISearchBar entfernt werden?

enter image description here

Aber ich war nicht in der Lage Original-Hintergrund zu entfernen (ich bin mit iOS5). Allerdings scheint es Apple-es tat:

enter image description here

Wie kann ich, was ich will? Oder gibt es keine Wahl und die einzige Alternative, die ich habe, ist ein UITextField anpassen?

Vielen Dank für Anregungen und Ideen!

EDIT: Nach dem ersten Antwort, das ist, was ich habe:

enter image description here

Hat jemand wie kann ich, ohne dass alle Komponenten halbtransparenten Änderung seines Alpha-Wert weißen Innen Hintergrund entfernen? BTW, kann ich weiße Farbe durch schwarze Farbe ändern?

Antwort

7

diesen Code versuchen, es für mich

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

In dem obigen Code yourSearchBar ist die searchbar von dem Sie den Hintergrund entfernen möchten, Und die for-Schleife für das Hintergrundbild von UISearchBar sucht

+0

Danke für Ihre Antwort. Gestern habe ich versucht und habe nicht gearbeitet, aber heute arbeitet. Weißt du wie ich den weißen inneren Hintergrund entfernen kann? Ich habe die Frage mit dieser Info bearbeitet. – Ricardo

+1

Es fehlt diese Zeile, damit sie vollständig funktioniert: [[[searchBar subviews] objectAtIndex: 0] setHidden: YES]; von Hassan Shahzad unten. – David

+0

Erstaunliche Antwort rettete mein Leben, dank einer Million –

6

Sie sollten wirklich das Aussehen Protokoll verwenden. Sie können entweder für eine einzelne Instanz der UISearchBar,

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

ändern oder wenn Sie in verschiedenen Szenen diesen Willen Thema jede Instanz mehrere Such Bars (aber es irgendwo vernünftig nennen wie die AppDelegate die Bars, um sicherzustellen, sind alle Setup richtig, bevor Sie irgendwelche von ihnen sehen

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

Update:. OK, den Hintergrund einer Suchleiste ändern Sie eine der folgenden Optionen verwenden sollten,

Einzel Instanz SearchBar:

[searchBar setSearchFieldBackgroundImage:searchBg forState:UIControlStateNormal]; 

Alle Instanzen UISearchBars:

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

Hoffnung, das hilft.

1

In iOS 7 können Sie einfach einstellen:

searchBar.barTintColor = [UIColor clearColor];