UISearchBar Высота автоматического изменения размера Swift - PullRequest
0 голосов
/ 26 декабря 2018

Вот что я пытаюсь сделать:

original image

Скриншот взят с Iphone:

second image

Я работаю над простым приложением и программно добавляю панель пользователя, но я действительно растерялся, зачем показывать дополнительное пространство сверху, как второе изображение.но когда я пишу, тогда uisearchbar меняет нашу позицию, как первое изображение.

Это мой код:

let searchController = UISearchController(searchResultsController: nil)

override func viewDidLoad() {
    super.viewDidLoad()

 self.searchController.obscuresBackgroundDuringPresentation = false
 self.searchController.searchBar.placeholder = "Search"
 self.searchController.searchBar.barStyle = .black
 self.searchController.searchBar.delegate = self
 self.definesPresentationContext = true
 if #available(iOS 11.0, *) {
 navigationItem.searchController = searchController
    } else {
        // Fallback on earlier versions
        navigationItem.titleView = searchController.searchBar
    }
   }

extension starControl: UISearchBarDelegate{

func searchBarTextDidBeginEditing(_ searchBar: UISearchBar)
{
    //Show Cancel
    searchBar.setShowsCancelButton(true, animated: true)
    searchBar.tintColor = .black
}

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
{

}

func searchBarSearchButtonClicked(_ searchBar: UISearchBar)  
{
    searchBar.setShowsCancelButton(false, animated: true)
    searchBar.resignFirstResponder()

    guard let term = searchBar.text , term.isEmpty == false else {

        return
    }
}

func searchBarCancelButtonClicked(_ searchBar: UISearchBar)
{
    searchBar.setShowsCancelButton(false, animated: true)
    searchBar.text = String()
    searchBar.resignFirstResponder()
 }
}

Может кто-нибудь объяснить мне, как решить эту проблему,Я пытался решить эту проблему, но пока результатов нет.

Любая помощь будет принята с благодарностью.

Заранее спасибо.

1 Ответ

0 голосов
/ 26 декабря 2018

Это последний swift4.2 код и последняя функциональность панели поиска, просто поместите эту функцию в контроллер и вызовите из viewDidLoad.

func setupNavBar() {
        self.title = "Controller title"
        self.navigationController?.navigationBar.prefersLargeTitles = false
        self.navigationController?.navigationItem.largeTitleDisplayMode = .always
        let searchController = UISearchController(searchResultsController: nil)
        searchController.searchBar.delegate = self
        navigationItem.searchController = searchController
    }
...