2011-07-29 7 views
38

UISearchBar 1px black borderWyjmij obramowanie 1px pod UISearchBar

Mam problemy usunięcie tego obramowanie 1px bezpośrednio w widoku UISearchBar. Teraz nie wygląda na dopasowany do mojego zrobionego widoku przycisku. Próbowałem:

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

Ale to nie wydaje się działać. Jakieś pomysły?

+0

Być może jest to część projektu? – apscience

Odpowiedz

88

Nevermind, ja właśnie zrobiłem:

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

i to działa!

+1

to nie działa dla mnie. Nie mam żadnych opcji, gdy próbuję autouzupełniania po searchBar.layer. Jakieś pomysły, dlaczego? – budidino

+3

OK, musiałem: #import budidino

+0

Jedynym powodem, dla którego zadziałało to ustawienie koloru obramowania na kolor tła widoku. Ale to najlepsze rozwiązanie, jakie do tej pory znalazłem. – testing

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

Myślę, że jest to rozwiązanie iOS 7+, które jest tym, czego potrzebowałem. Dzięki! – rob5408

+0

To jest odpowiednia odpowiedź – RPallas

+0

Zależy to od używanego koloru tła. – testing

3

W celu przezwyciężenia tego w Formularzach Xamarin, musisz utworzyć CustomRenderer do klasy SearchBar. Jak to:

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

Czy możesz wyjaśnić, jak to działa i dlaczego bardziej proste odpowiedzi nie są wystarczająco dobre? – meneldal

13

Dla Swift wersji, testowane na iOS9:

searchBar.backgroundImage = UIImage() 

by pokazać jak to:

no-border-result