Mis à niveau de Xcode 5 à 6, ma teinte dans la barre de recherche est maintenant noire.
J'ai essayé de le changer dans le volet droit du storyboard> "Bar Tint" pour effacer les couleurs, mais il reste noir.
Aussi essayé par programme:
[self.searchBar setTintColor:[UIColor clearColor]];
Toujours noir :(
Des idées?
Tout comme UINavigationBar, la propriété tintColor
des barres de recherche modifie la couleur des boutons, ainsi que celle du curseur clignotant et non l'arrière-plan de la barre de recherche. Ce que vous voulez utiliser est la propriété barTintColor
.
searchbar.barTintColor = [UIColor orangeColor];
searchbar.tintColor = [UIColor greenColor];
Produit le résultat laid, mais instructif, suivant:
Si vous souhaitez une barre de recherche totalement transparente, vous devez également définir l’image d’arrière-plan:
searchbar.barTintColor = [UIColor clearColor];
searchbar.backgroundImage = [UIImage new];
EDIT: Je déconseille fortement de parcourir et de modifier les sous-vues de l'objet indifférent UIKit, comme cela a été proposé dans d'autres réponses. De la documentation d'Apple:
Pour les vues complexes déclarées dans UIKit et d'autres frameworks système, any les sous-vues de la vue sont généralement considérées comme privées et soumises à changer à tout moment. Par conséquent, vous ne devez pas essayer de récupérer ou modifier les sous-vues pour ces types de vues fournies par le système. Si tu fais, votre code peut tomber lors d'une prochaine mise à jour du système.
https://developer.Apple.com/documentation/uikit/uiview/1622614-subviews
Je dois le changer sur iOS 9 en utilisant Swift 2.0 de cette façon:
let image = UIImage()
searchBar.setBackgroundImage(image, forBarPosition: .Any, barMetrics: .Default)
searchBar.scopeBarBackgroundImage = image
Sur Swift 3:
Configuration de l’arrière-plan de la barre de recherche pour une image vide:
searchBar.setBackgroundImage(image, for: .any, barMetrics: .default)
searchBar.scopeBarBackgroundImage = image
Je vois ce problème aussi bien sur iOS8/XCode 6. Je n'ai pas obtenu la barre de recherche translucide. Le paramètre searchbar.barTintColor ou searchbar.tintColor pour effacer la couleur n'a pas aidé ou affiche une barre de recherche noire.
La seule solution que j'ai trouvée consistait à définir une image png d'arrière-plan transparente (alpha = 0.0) et à définir searchbar.barTintColor pour effacer la couleur.