7
votes

Comment changer la couleur de la barre de recherche?

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> xxx pré>

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> xxx pré>

... 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];


2 commentaires

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


9 Réponses :


3
votes
  self.mySearchBar.backgroundColor = [UIColor redColor];

1 commentaires

Qu'est-ce que cela signifie même? "Backgroundvolor" ou "BackgroundColor"?



0
votes

Essayez ce code cela fonctionne bien pour moi. XXX


0 commentaires

6
votes
self.mySearchBar.tintColor = [UIColor redColor]; 

0 commentaires

29
votes

Essayez:

self.mySearchBar.barTintColor = [UIColor redColor];


0 commentaires

2
votes

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> xxx pré>

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;


0 commentaires

1
votes
searchBar.barTintColor =  UIColor.redColor()

1 commentaires

Mieux vaut élaborer pourquoi il s'agit de la bonne réponse - donnez un certain contexte autour de l'extrait de code.



0
votes

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];


0 commentaires

2
votes

Je devais définir SearchbarStyle de Uiseearchbar à .Default , sinon rien ne fonctionne.


0 commentaires

0
votes

dépend de quoi allez-vous changer exactement xxx

Autre Articles que vous pouvez personnaliser a pensé à un code supplémentaire


0 commentaires