How do I set the UISearchController's searchBar to a view that isn't the tableHeaderView or navigationItem.titleview?

倾然丶 夕夏残阳落幕 提交于 2019-12-10 12:30:38

问题


I'm trying to keep the search bar in view as the table scrolls. At the moment I'm placing it as the header in a tableview, and it works as it should, but of course the search bar scrolls off screen as you go down the table. I thought I could do this simply modifying this code sample:

How do I use UISearchController in iOS 8 where the UISearchBar is in my navigation bar and has scope buttons?

searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.delegate = self
searchController.searchBar.delegate = self
searchController.dimsBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = false
tableview.tableHeaderView = searchContoller.searchBar // How to put it elsewhere?
//Alternative that also works
navigationItem.titleView = searchController.searchBar

The idea was to take some other view and do

otherview = searchController.searchBar

For instance an outlet to a UISearchBar, or a blank UIView, or something like that.

But it doesn't show the searchBar if I do that. It seems to only work as the header view of a table or as a navigationItem.titleView.

Am I missing something?


回答1:


If you have a blank UIView that is placed above the tableview.

let's assume you have an outlet to that blank UIView called searchContainer. Then you can add the search bar of the UISearchController to that view by adding the following line

searchContainer.addSubview(searchController.searchBar)


来源:https://stackoverflow.com/questions/30756825/how-do-i-set-the-uisearchcontrollers-searchbar-to-a-view-that-isnt-the-tablehe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!