2016-05-25 3 views
0

У меня есть UISearchBar, который является частью UISearchController, который находится поверх UICollectionViewController. Я хочу изменить фон UISearchBar так, чтобы это был образ моего выбора, а фон текстового поля был полупрозрачным. В принципе, я хочу, чтобы превратить это:Как изменить цвет UISearchBar в UISearchController

This is what it looks like with the given code

В это:

After

Я пробовал все, что я мог бы найти здесь. Я попробовал searchBar.SetBackgroundImage с каждой возможной комбинацией UISearchBarPosition и UIBarMetrics, ни одна из них не работает. Самое лучшее, что я достиг, это изменение значка для поиска. Что ничего для меня не делает. Я думаю, это потому, что он встроен в UINavigationItem. Я понятия не имею, почему он не работает. Вот что я создал.

var resultSearchController:UISearchController? = nil 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     let searchTable = storyboard!.instantiateViewControllerWithIdentifier("SearchTable") as! SearchTable 
     resultSearchController = UISearchController(searchResultsController: searchTable) 
     resultSearchController?.searchResultsUpdater = searchTable 

     //Sets up the search bar and adds it to navigation header 
     let searchBar = resultSearchController!.searchBar 
     searchBar.searchBarStyle = UISearchBarStyle.Minimal 
     searchBar.sizeToFit() 
     searchBar.placeholder = "Find a Result" 
     navigationItem.titleView = resultSearchController?.searchBar 
       searchBar.setBackgroundImage(UIImage(named: "Horses.jpg"), forBarPosition: UIBarPosition.Any, barMetrics: UIBarMetrics.Default) 

     resultSearchController?.hidesNavigationBarDuringPresentation = false 
     resultSearchController?.dimsBackgroundDuringPresentation = true 
     definesPresentationContext = true 


    } 

ответ

0

Здесь код:

searchBar.setImage(UIImage(named: "Horses"), forSearchBarIcon: UISearchBarIcon.Search, state: UIControlState.Normal); 

var searchTextField: UITextField? = searchBar.valueForKey("searchField") as? UITextField 
if searchTextField!.respondsToSelector(Selector("attributedPlaceholder")) { 
    var color = UIColor.purpleColor() 
    let attributeDict = [NSForegroundColorAttributeName: UIColor.purpleColor()] 
    searchTextField!.attributedPlaceholder = NSAttributedString(string: "search", attributes: attributeDict) 
} 
+0

Неа. Это изменяет значок. Я хочу изменить фоновое изображение – QuantumHoneybees

Смежные вопросы