J'ai implémenté une barre de recherche et je souhaite changer la couleur de la barre de recherche. Comment puis-je faire ça?
J'ai essayé avec: p> mais sans succès. P> Mise à jour (résolue): strong> p> Je devais retirer la couleur d'arrière-plan par défaut avant de définir la couleur d'arrière-plan avec le code suivant. p> ... donc le code Soyez ensuite suivant: P> for (UIView *subview in mySearchBar.subviews) {
if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
[subview removeFromSuperview];
break;
}
}
self.mySearchBar.backgroundColor = [UIColor redColor];
9 Réponses :
self.mySearchBar.backgroundColor = [UIColor redColor];
Qu'est-ce que cela signifie même? "Backgroundvolor" ou "BackgroundColor"?
Essayez ce code cela fonctionne bien pour moi.
self.mySearchBar.tintColor = [UIColor redColor];
Essayez:
self.mySearchBar.barTintColor = [UIColor redColor];
Je ne suis pas sûr que cela a changé depuis iOS7, mais il semble que la barre de recherche du contrôleur d'affichage de recherche nécessite une boucle supplémentaire pour supprimer correctement la vue Uisearbarbackground.
J'ai créé une méthode récursive pour nettoyer correctement le Barre de recherche. p> Vous pouvez simplement envoyer votre barre de recherche à la méthode et modifier la couleur après, un peu comme les réponses suggérées ci-dessus. P> [self removeUISearchBarBackgroundInViewHierarchy:self.searchDisplayController.searchBar];
self.searchDisplayController.searchBar.backgroundColor = yourUIColor;
searchBar.barTintColor = UIColor.redColor()
Mieux vaut élaborer pourquoi il s'agit de la bonne réponse - donnez un certain contexte autour de l'extrait de code.
Si vous avez des problèmes avec les lignes supérieures et inférieures, essayez de supprimer le terrain d'UiseearchBackground:
self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 50)]; for (UIView *subview in self.searchBar.subviews) { if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) { [subview removeFromSuperview]; break; } for (UIView *subsubview in subview.subviews) { if ([subsubview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) { [subsubview removeFromSuperview]; break; } } } self.searchBar.barTintColor = [UIColor redColor]; self.searchBar.backgroundColor = [UIColor redColor];
Je devais définir SearchbarStyle de Uiseearchbar code> à
.Default code>, sinon rien ne fonctionne. P>
dépend de quoi allez-vous changer exactement Autre Articles que vous pouvez personnaliser a pensé à un code supplémentaire p> p>
Peut-être que cela peut vous aider Stackoverflow.com/Questtions/2139115/...
C'était la réponse que j'avais donnée, vous devriez sélectionner ma réponse comme le bon