1. ホーム
  2. ios

[解決済み] UISearchBarはiOS 11でナビゲーションバーの高さを増加させる

2023-03-31 17:50:42

質問

私の UISearchBar のようなナビゲーションバーの一部になっています。

 let searchBar = UISearchBar()
 //some more configuration to the search bar
 .....
 navigationItem.titleView = searchBar

に更新した後 iOS 11 をアップデートした後、私のアプリの検索バーに奇妙なことが起こりました。オン iOS 10 とそれ以前のナビゲーション バーは次のようなものでした。

今度は iOS 11 を持っています。

ご覧のように、2つの検索バーの丸め方に違いがありますが、それは私を悩ますものではありません。問題は、検索バーがナビゲーション バーの高さを増加させることです。そのため、別のコントローラに移動すると、それも奇妙に見えます。

実際、その奇妙な黒い線の高さと現在のナビゲーションバーの高さは、2番目の画像に示されているナビゲーションバーの高さと同じです ...

黒い線を取り除き、すべてのビューコントローラで一貫したナビゲーションバーの高さを持つようにするには、何かアイデアがありますか?

どのように解決するのですか?

iOS 11 で NavigationBar と SearchBar の下に黒い線が表示されることが 2 件ありました。

  • UISearchBarを持つViewControllerから別のViewControllerをプッシュした場合

  • UISearchBarのあるViewControllerを"drag right to dismiss"とした場合、ViewControllerを終了させることはできますか?

私の解決策は、UISearchBarを持つViewControllerにこのコードを追加することでした。

-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    [self.navigationController.view setNeedsLayout]; // force update layout
    [self.navigationController.view layoutIfNeeded]; // to fix height of the navigation bar
}

Swift 4 アップデート

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    navigationController?.view.setNeedsLayout() // force update layout
    navigationController?.view.layoutIfNeeded() // to fix height of the navigation bar
}