2015-06-10 17 views
11

我試圖在表格滾動時將查找欄保留在視圖中。目前,我將它作爲桌面視圖中的標題放置,並且按其應有的方式工作,但當然,當您沿着桌子向下搜索欄時,搜索欄會滾動屏幕。我想我能做到這一點簡單地修改這個代碼示例:如何將UISearchController的searchBar設置爲不是tableHeaderView或navigationItem.titleview的視圖?

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 

當時的想法是採取一些其他的看法,並做

otherview = searchController.searchBar 

比如一個出口一個UISearchBar,或一個空白的UIView或類似的東西。

但它不顯示searchBar,如果我這樣做。它似乎只能用作表格的標題視圖或者作爲navigationItem.titleView。

我錯過了什麼嗎?

+1

添加UISearchController該視圖的搜索欄,如果你有實現代碼如下上述空白的UIView的地方,比方說你有一個出口,以調用'searchContainer'空白的UIView ,那麼你可以通過'searchContainer.addSubview(searchController.searchBar)' –

+0

將搜索欄添加到該視圖。添加並回答,你會得到更多的積分。 – Carlos

回答

19

如果你有一個空白的UIView放在tableview之上。

我們假設您有一個空白UIView的出口,名爲searchContainer。 然後你就可以添加以下行

searchContainer.addSubview(searchController.searchBar) 
+0

它對我來說非常適合在視圖控制器中添加searchBar,但searchResultsController在每次嘗試編輯時都不會觸發,只是第一次。但是,如果我使用barButtonItem來啓動searchBar,則searchResultsController和實際搜索每次都會觸發。我在這裏錯過了什麼嗎? – gadget00

+0

偶爾你應該使用'definesPresentationContext = true'和'extendedLayoutIncludesOpaqueBars = true'來設置'viewDidLoad'方法來防止佈局的不當行爲。 – Leandro

+0

有沒有辦法在添加子視圖之前/之後設置searchController.searchBar的高度和寬度? – coolcool1994

相關問題