2017-11-21 20 views
0

ナビゲーションアイテムにUISearchBarコントローラをカスタムで追加します。そして、それはiPhoneでうまく動作しますが、ipadで問題を起こします。ナビゲーションバーの下にあるコンテナビューは、検索バーが選択されたときにシフトしませんでした。

私は異なるビューコントローラを呼び出すナビゲーションバーの下のコンテナビューを使用しています。しかし、検索バーを選択するとすぐに、検索バーはステータスバーを隠すようになりますが、ナビゲーションの下のコンテナビューは上にシフトしませんでした。私は何をしたいか

 self.searchController = UISearchController(searchResultsController: nil) 
    self.searchController.searchBar.delegate = self; 
    self.searchController.searchBar.placeholder = "Search" 
    if let textfield = self.searchController.searchBar.value(forKey: "searchField") as? UITextField {  
     if let backgroundview = textfield.subviews.first { 
      backgroundview.backgroundColor = UIColor.white 
      backgroundview.layer.cornerRadius = 10; 
      backgroundview.clipsToBounds = true; 
     } 
    } 
    self.searchController.searchBar.tintColor = UIColor.cityworksBlue() 
    if #available(iOS 11.0, *) { 
     self.searchController.searchBar.showsScopeBar = false; 
     self.searchController.dimsBackgroundDuringPresentation = false 
     self.searchController.hidesNavigationBarDuringPresentation = true 

     navigationItem.searchController = self.searchController 
     navigationItem.hidesSearchBarWhenScrolling = false 
    } 

image 1 before image 2 after selecting search bar

検索バーが上向きにシフトした場合で、コンテナビューも上方にシフトすべきです。それはiphoneで動作しますが、ipadの問題を与えます。

+0

あなたがしたいことは何ですか?ナビゲーションバーを非表示にするには? hidesNacigationBarDuringPresentationをtrueに設定しています。 –

+0

私がしたいのは、検索バーが上にシフトしてからコンテナのビューも上に移動する必要がある場合です。それはiphoneで動作しますが、ipadの問題を与えます。 –

答えて

0

私の解決策は「アンダートップバー」オプションで選択しました。

first select Then check the "Under Top Bars" option

関連する問題