Customize UISearchBar: Trying to get rid of the 1px black line underneath the search bar
My question is already specified in the title: I would like to get rid of the black line drawn on the bottom of the UISearchBar
. Any ideas?
Here's an image of what I mean:
UPDATE:
I think that the line is part of the UITableView
's tableHeaderView
. I still don't know how to remove it.
Solution 1:
Try this
searchBar.layer.borderWidth = 1;
searchBar.layer.borderColor = [[UIColor lightGrayColor] CGColor];
Solution 2:
Why:
So, I've dug into the API's trying to figure out why this is happening. Apparently whomever wrote the UISearchBar
API is rasterizing the lines onto an image and setting it as it's backgroundImage
.
Solution:
I propose a simpler solution, if you want to set the backgroundColor
and get rid of the hairlines:
searchBar.backgroundColor = <#... some color #>
searchBar.backgroundImage = [UIImage new];
Or if you just need a background image without the hairlines:
searchBar.backgroundImage = <#... some image #>
Solution 3:
I have 0.5px
black horizontal lines both on top and on the bottom of my UISearchBar
. The only way I had so far to get rid of them is by setting its style to Minimal
:
mySearchBar.searchBarStyle = UISearchBarStyleMinimal;
Solution 4:
Solution for
XCode 10.1 Swift 4.2
Solution 5:
I fixed this by adding a subview
to the searchBar
's view stack like so:
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];
Here, self.searchBar
is an UISearchBar
pointer of my controller class.