it-swarm.com.de

Die Farbtonfarbe der Suchleiste kann in iOS 8 nicht transparent angezeigt werden

Von Xcode 5 auf 6 aktualisiert und jetzt ist mein Suchbalkenfarbton schwarz.

Es wurde versucht, es über den rechten Fensterbereich des Storyboards zu ändern, um die Farbe zu löschen, aber es ist immer noch schwarz.

Auch programmatisch versucht:

[self.searchBar setTintColor:[UIColor clearColor]];

Immer noch schwarz :(

Irgendwelche Ideen?

27
ox_

Die tintColor-Eigenschaft in Suchleisten ändert sich, ähnlich wie bei UINavigationBar, sowohl die Farbe der Schaltflächen als auch die Farbe des blinkenden Cursors, nicht den tatsächlichen Hintergrund der Suchleiste. Was Sie verwenden möchten, ist die barTintColor-Eigenschaft.

searchbar.barTintColor = [UIColor orangeColor];
searchbar.tintColor = [UIColor greenColor];

Erzeugt das folgende unschöne, aber informative Ergebnis:

enter image description here

Wenn Sie eine vollständig transparente Suchleiste haben möchten, müssen Sie auch das Hintergrundbild einstellen:

searchbar.barTintColor = [UIColor clearColor];
searchbar.backgroundImage = [UIImage new];

enter image description here

EDIT: Ich würde dringend davon abraten, die Unteransichten des any UIKit-Objekts zu durchlaufen und zu modifizieren, wie in anderen Antworten vorgeschlagen wurde. Aus der Dokumentation von Apple:

Für komplexe Ansichten, die in UIKit und anderen Systemframeworks deklariert sind, gilt jede beliebige Unteransichten der Ansicht werden im Allgemeinen als privat betrachtet und unterliegen jederzeit ändern. Daher sollten Sie nicht versuchen, oder .__ abzurufen. Ändern von Unteransichten für diese Arten von Systemansichten. Wenn Sie tun, Ihr Code kann während einer zukünftigen Systemaktualisierung beschädigt werden.

https://developer.Apple.com/documentation/uikit/uiview/1622614-subviews

65
Mike

Ich habe es auf iOS 9 mit Swift 2.0 folgendermaßen geändert:

    let image = UIImage()

    searchBar.setBackgroundImage(image, forBarPosition: .Any, barMetrics: .Default)
    searchBar.scopeBarBackgroundImage = image
7
darqueos

Auf Swift 3:

Den Hintergrund der Suchleiste auf ein leeres Bild einstellen:

    searchBar.setBackgroundImage(image, for: .any, barMetrics: .default)
    searchBar.scopeBarBackgroundImage = image
2
Gilad Brunfman

Ich habe dieses Problem auch auf iOS8/XCode 6 gesehen. Ich habe die Suchleiste nicht durchscheinend erhalten. searchbar.barTintColor oder searchbar.tintColor Die Einstellung zum Löschen der Farbe hat nicht geholfen oder zeigt eine schwarze Suchleiste. 

Die einzige Problemumgehung, die ich gefunden habe, war das Setzen eines durchscheinenden Hintergrund-Png-Bildes (Alpha = 0,0) und das Festlegen von searchbar.barTintColor auf „Clear Color“.

0
user3845832