2011-07-29 10 views
38

UISearchBar 1px black borderUISearchBarの1pxボーダーを削除します

UISearchBarビューの下でその1pxボーダーを直接削除することができません。今は、完了したボタンビューと一致していません。私は試しました:

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

しかし、それは動作していないようです。何か案は?

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

をし、それが動作します:

+0

は、おそらくそれは、デザインの一部ですか? – apscience

答えて

88

ネヴァーマインド、私はちょうどでした! Xamarinフォームでこれを克服するために

+1

これは私のためには機能しません。私はsearchBar.layerの後にオートコンプリートしようとするとオプションがありません。 アイデアは何故ですか? – budidino

+3

OK、私は:#import budidino

+0

これは、境界線の色をビューの背景色に設定しているためです。しかし、それは私が今までに見つけた最良の解決策です。 – testing

48
[searchBar setBackgroundImage:[UIImage new]]; 
+1

これは私が必要としているiOS 7+ソリューションだと思います。ありがとう! – rob5408

+0

これは正しい答えです – RPallas

+0

これは使用している背景色によって異なります。 – testing

3

、あなたはSearchBarクラスにCustomRendererを作成する必要があります。 iOS9上でテストスウィフトバージョンについては、

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(); 
     } 
    } 
} 
+1

これはどのように動作し、なぜ簡単な答えが十分でないのかを説明できますか? – meneldal

13

searchBar.backgroundImage = UIImage() 

それは次のように表示されるでしょう:このように

no-border-result

関連する問題