Мне нужно добавить UISearchController
к UIViewController
Я знаю, что лучший способ сделать это - добавить его к UINavigationController
следующим образом:
let resultSearchController = UISearchController(searchResultsController: athkarSearchTable)
resultSearchController?.searchResultsUpdater = athkarSearchTable
navigationItem.searchController = resultSearchController
Проблема в том, что я не могу использовать UINavigationController
, поэтому я нашел другое решение: добавив его к tableHeaderView
, как показано ниже:
let resultSearchController = ({
let controller = UISearchController(searchResultsController: athkarSearchTable)
controller.searchResultsUpdater = athkarSearchTable
// to give a semi-transparent background when the search bar is selected.
controller.dimsBackgroundDuringPresentation = true
controller.searchBar.sizeToFit()
controller.searchBar.barStyle = UIBarStyle.default
controller.searchBar.searchBarStyle = .minimal
tableView.tableHeaderView = controller.searchBar
return controller
})()
// to limit the overlap area to just the View Controller’s frame instead of the whole Navigation Controller
definesPresentationContext = true
Однако, это решение добавляет пустое пространство внизу tableView
в UIViewController
, а не athkarSearchTable
, что не хорошо: / как на скриншоте ниже:
Я попытался установить нижний колонтитул на пустой вид и установить высоту нижнего колонтитула на ноль, ни один из них не работал: /
Есть предложения как убрать нижнее пустое пространство?