Réglage translucides PAS sur UISearchBar
Nous avons un UITableView
avec un searchbar
ajouté avec le searchDisplayController
.
Nous voulons avoir la translucidité off tout au long de l'application.
J'ai la translucidité hors de la barre de navigation et autres bars, mais pas la barre de recherche quand il utilise le contrôleur d'affichage. Dans une partie de l'application lorsque nous utilisons la barre de recherche, mais pas le contrôleur d'affichage, la translucidité est correctement définie.
Comment puis-je régler l'translucide propriété de la UISearchBar
avec le contrôleur d'affichage à être NON?
EDIT:
c'est mon code dans viewDidLoad
self.navigationController.navigationBar.translucent = NO;
BOOL t = self.searchDisplayController.searchBar.translucent;
self.searchDisplayController.searchBar.translucent = NO;
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
self.searchDisplayController.searchBar.barTintColor = [UIColor redColor];
UIBarStyle b1 = self.searchDisplayController.searchBar.barStyle;
UISearchBarStyle b2 = self.searchDisplayController.searchBar.searchBarStyle;
BOOL t2 = self.searchDisplayController.searchBar.translucent;
Cours d'exécution dans le débogueur, t = OUI et t2 = OUI. b1 = UIBarStyleDefault
et b2 = UISearchBarStyleDefault
. Suis-je mise PAS au mauvais endroit? J'ai essayé de la mise en storyboard
et ici dans viewDidLoad
OriginalL'auteur Jason Hocker | 2013-09-25
Vous devez vous connecter pour publier un commentaire.
Pour UISearchBarStyleProminent:
1) assurez-vous de cocher la case "Translucide" de la barre de recherche dans les Attributs de l'Inspecteur.
2) Ajoutez les lignes suivantes à viewDidLoad:
Modifier De @RudolfAdamkovic:
Pour UISearchBarStyleMinimal:
Afin d'obtenir le minimum de barre de recherche pour ne pas être translucide, j'ai mis en place une solution de contournement.
1) assurez-vous de cocher la case "Translucide" de la barre de recherche dans les Attributs de l'Inspecteur.
2) Ajoutez le code suivant à viewDidLoad:
3) Une UIView doit être ajouté à la viewController. Ce point de vue doit être 20px de hauteur et doivent avoir la même couleur que la barre de recherche.barTintColor.
Remarque: je pense que cette solution de contournement est nécessaire parce que: "Le style UISearchBarStyleMinimal fournit pas de couleur de fond par défaut ou de l'image, mais affichera un si personnalisé en tant que tel." Donc, la seule façon d'obtenir cette fonctionnalité pour UISearchBarStyleMinimal est de définir la backgroundColor.
Voir UISearchBar la documentation pour plus de détails.
Ouais, désolé. Je viens de remarquer que ce n'est pas la réponse complète. J'ai mis à jour la réponse et avoir vérifié qu'il fonctionne pour moi.
Est votre barre de recherche translucidité du éteint dans le storyboard? Je demande parce que chaque fois que je l'ai désactivé via la table de montage séquentiel, je ne pouvais pas mis à jour par programmation (ce qui signifie que chaque fois que je ne le met PAS, il était encore OUI). Une fois que j'ai tourné la translucidité dans le storyboard, j'ai été capable de programmation pour définir la valeur et le journal de son changement.
Super, je suis contente. Par "dur" entendez-vous mal? Si donc je ne pense pas qu'il y est un préjudice à mettre dans ce code dans l'avenir. Pour ce qui est du bug, je ne suis pas sûr d'Apple est terriblement friands d'entre nous d'essayer d'utiliser des barres de recherche sans une certaine forme de transparence; je dis cela parce que je ne peux pas penser à une instance où iOS 7 ne. Cela étant dit, oui, il semble comme un bug qui apple devrait résoudre le problème.
Merci pour la réponse. J'ai été en tirant sur mes cheveux pendant 15 minutes. Par ailleurs, j'ai constaté que pour
UISearchBarStyleProminent
, l'exécution desearchBar.translucent = YES; searchBar.translucent = NO;
aide. De cette façon, vous pouvez garder dans le Storyboard.OriginalL'auteur James Nelson
Aucune des réponses ci-dessus a fonctionné pour moi sur iOS 7/8. Voici un code de programme d'installation qui a fait le tour:
OriginalL'auteur Ben Jackson