web-dev-qa-db-fra.com

Supprimer la bordure 1px sous UISearchBar

UISearchBar 1px black border

J'ai du mal à supprimer cette bordure 1px directement sous la vue UISearchBar. Maintenant, il ne semble pas correspondre à ma vue de bouton terminé. J'ai essayé:

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

Mais cela ne semble pas fonctionner. Des idées?

41
ninjaneer

Peu importe, je viens de faire:

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

et il fonctionne!

92
ninjaneer
[searchBar setBackgroundImage:[UIImage new]];
50
NaveenReddy

Pour la version Swift, testée sur iOS9:

searchBar.backgroundImage = UIImage() 

Cela ressemblerait à ceci:

no-border-result

19
Cody

Pour surmonter cela dans Xamarin Forms, vous devrez créer un CustomRenderer dans la classe SearchBar. Comme ça:

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 ();
        }
    }
}
3
Moshe Taieb