ninjaneer
ninjaneer

Reputation: 7031

Remove the 1px border under UISearchBar

UISearchBar 1px black border

I'm having trouble removing that 1px border directly under the UISearchBar view. Now it doesn't look matched up with my done button view. I've tried:

searchBar.layer.borderWidth = 0;
searchBar.layer.shadowOpacity = 0;

But that doesn't seem to be working. Any ideas?

Upvotes: 45

Views: 22528

Answers (4)

Cody
Cody

Reputation: 4471

For Swift version, tested on iOS9:

searchBar.backgroundImage = UIImage() 

It would show like this:

no-border-result

Upvotes: 25

Moshe Taieb
Moshe Taieb

Reputation: 144

In order to overcome this in Xamarin Forms, you'll need to create a CustomRenderer to the SearchBar class. Like this:

using System;
using Xamarin.Forms.Platform.iOS;
using Xamarin.Forms;
using MyProject.iOS;

[assembly: ExportRenderer(typeof(SearchBar), typeof(CustomSearchBarRenderer))]
namespace MyProject.iOS
{
    public class CustomSearchBarRenderer:SearchBarRenderer
    {
        protected override void OnElementChanged (ElementChangedEventArgs<Xamarin.Forms.SearchBar> e)
        {
            base.OnElementChanged (e);
            if (this.Control == null) return;

            this.Control.BackgroundImage = new UIKit.UIImage ();
        }
    }
}

Upvotes: 4

NaveenReddy
NaveenReddy

Reputation: 695

[searchBar setBackgroundImage:[UIImage new]];

Upvotes: 53

ninjaneer
ninjaneer

Reputation: 7031

Nevermind, I just did:

searchBar.layer.borderWidth = 1;
searchBar.layer.borderColor = [[UIColor whiteColor] CGColor];

and it works!

Upvotes: 95

Related Questions