57 votes

Personnaliser UISearchBar : Essayer de se débarrasser de la ligne noire de 1px sous la barre de recherche

Ma question est déjà précisée dans le titre : Je voudrais me débarrasser de la ligne noire dessinée en bas de l'écran de la UISearchBar . Des idées ?

Voici une image de ce que je veux dire :

search bar with black bottom line

UPDATE :

Je pense que la ligne fait partie de la UITableView 's tableHeaderView . Je ne sais toujours pas comment l'enlever.

76voto

ayush Points 215

Essayez ceci

 searchBar.layer.borderWidth = 1;

 searchBar.layer.borderColor = [[UIColor lightGrayColor] CGColor];

53voto

theMonster Points 785

Pourquoi ?

J'ai donc creusé dans les API pour essayer de comprendre pourquoi cela se produit. Apparemment, celui qui a écrit l UISearchBar est en train de tramer les lignes sur une image et de la définir comme sa propre image. backgroundImage .

Solution :

Je propose une solution plus simple, si l'on veut définir l'option backgroundColor et se débarrasser des lignes de cheveux :

searchBar.backgroundColor = <#... some color #>
searchBar.backgroundImage = [UIImage new];

Ou si vous avez simplement besoin d'une image d'arrière-plan sans les lignes de cheveux :

searchBar.backgroundImage = <#... some image #>

47voto

ancajic Points 705

J'ai 0.5px des lignes horizontales noires en haut et en bas de mon UISearchBar . La seule façon que j'ai eue jusqu'à présent de m'en débarrasser est de définir son style comme étant Minimal :

mySearchBar.searchBarStyle = UISearchBarStyleMinimal;

34voto

swift2geek Points 695

Solution pour

XCode 10.1 Swift 4.2

enter image description here

22voto

Nonlinearsound Points 290

J'ai corrigé cela en ajoutant un subview à la searchBar La pile de vues de l'entreprise est la suivante :

CGRect rect = self.searchBar.frame;
UIView *lineView = [[UIView alloc]initWithFrame:CGRectMake(0, rect.size.height-2,rect.size.width, 2)];
lineView.backgroundColor = [UIColor whiteColor];
[self.searchBar addSubview:lineView];

Ici, self.searchBar es un UISearchBar de ma classe de contrôleur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X