Here is what I am trying to do:
The screenshot is taken from iPhone:
I'm working on a simple app and adding a programatically UISearchbar but I am really confused about why shows extra space from the top like the second image. but when I write the UISearchbar changes our position like the first image.
This is my code:
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()
}
}
Can someone please explain to me how to solve this, I've tried to solve this issue but no results yet.
Any help would be greatly appreciated.
Thanks in advance.