2015-07-20 26 views
7

Próbuję utworzyć pasek wyszukiwarki tak:UISearchBar niestandardowe rogi

enter image description here

Ale ja widząc, że jestem prawdopodobnie będzie musiał wymienić pasek wyszukiwania z własnego wizerunku, ponieważ rogi pasek wyszukiwania wychodzi źle kiedy ustawić:

self.searchController.searchBar.layer.cornerRadius = 50 // I've tried other numbers besides this too with no luck 
self.searchController.searchBar.clipsToBounds = true 

enter image description here

Jeżeli ustawić to:

self.searchController.searchBar.layer.cornerRadius = self.searchController.searchBar.bounds.height/2 

Pasek wyszukiwania wychodzi tak:

enter image description here

która wciąż nie jest dokładna jak w obrazie.

Czy istnieje sposób na zastąpienie lewej i prawej strony pola tekstowego obrazem w taki sposób, że mogę używać zaokrąglonych rogów z mojego niestandardowego paska wyszukiwania?

Odpowiedz

1

To działa na mnie w szybkim 3 iOS 10:

searchController.searchBar.layer.cornerRadius = 20 
    searchController.searchBar.clipsToBounds = true 

enter image description here

1

Używam tego kodu UISearchBar, ale możesz użyć tego kodu z UISearchController.

let searchBar = UISearchBar() 
       searchBar.sizeToFit() 
       searchBar.placeholder = "Search" 
       navigationItem.titleView = searchBar 

       if let textfield = searchBar.value(forKey: "searchField") as? UITextField { 
        textfield.textColor = UIColor.blue 
        if let backgroundview = textfield.subviews.first { 
         // Background color 
         backgroundview.backgroundColor = UIColor.white 
         // Rounded corner 
         backgroundview.layer.cornerRadius = 14; 
         backgroundview.clipsToBounds = true; 
        } 
       }