2016-08-29 42 views
2

ナビゲーションバーの右側にUISearchControllerで管理されている検索バーを追加したいと思います。ナビゲーションバーに検索バーを追加するには

searchController.searchResultsUpdater = self 
    searchController.dimsBackgroundDuringPresentation = false 
    definesPresentationContext = true 
    searchController.searchBar.placeholder = "Search" 
    searchController.searchBar.searchBarStyle = .Minimal 
    searchController.searchBar.frame = CGRect(x: 0, y: 0, width: 200.0, height: 44.0) 
    searchController.hidesNavigationBarDuringPresentation = false 
    navigationItem.rightBarButtonItem = UIBarButtonItem(customView: searchController.searchBar) 

私が代わりに小さな部品の検索バー(それがアクティブになる)(他のすべてを重ねながら)それは全体のナビゲーションバーをカバーをタップします。フレームを修正するにはどうしたらいいですか?

+1

オブジェクトライブラリのUIViewをナビゲーションバーにドラッグ&ドロップして、UIViewにドラッグ&ドロップしようとしましたか? ...私は試していないので、それがうまくいくかどうか分からない。 – Andrej

+0

UISearchControllerは、オブジェクトパレットで使用できません。しかし、UIView内の検索バーをラップすることは良いアイデアのようですが、私はそれをチェックさせてください。 – David

+0

UIViewに素晴らしい検索ラッピングバーがあります。ありがとうございました :) – David

答えて

3

検索バーをUIViewで囲むことは、このトリックを行うようです。

searchController.searchBar.frame = CGRect(x: 0, y: 0, width: 200.0, height: 44.0) 
    let barContainer = UIView(frame: searchController.searchBar.frame) 
    barContainer.backgroundColor = UIColor.clearColor() 
    barContainer.addSubview(searchController.searchBar) 
    navigationItem.rightBarButtonItem = UIBarButtonItem(customView: barContainer) 
関連する問題