Ответ 1
Не знаю, нашли ли вы свой ответ или нет. Позвольте мне предложить мое решение.
В коде нет ничего плохого. Он работает нормально. Но причина, по которой он не отображается, заключается в том, что когда вы нажимаете в строке поиска, func searchBarTextDidBeginEditing(searchBar: UISearchBar)
не влияет на нее, потому что вы можете забыть установить делегат для панели поиска.
Я пробовал ваш код, и после установки делегата он просто отлично работает. Также он скрывается за навигационной панелью, так как позиция Y равна 0. Решение:
- Добавьте
UISearchBarDelegate
в свой класс -
В
viewDidLoad()
override func viewDidLoad(){ super.viewDidLoad() searchcontroller.searchbar.delegate = self }
-
В
searchBarTextDidBeginEditing
func searchBarTextDidBeginEditing(searchBar: UISearchBar) { var myTextField: UITextField = UITextField(frame: CGRect(x: 0, y: searchController.searchBar.frame.height + 20, width: view.frame.size.width, height: 40.00)) myTextField.backgroundColor = UIColor.purpleColor() myTextField.text = "Location" myTextField.borderStyle = UITextBorderStyle.None searchController.view.addSubview(myTextField) }
Надеюсь, что это поможет.