[ iOS / Swift ] 解決 Navigation Bar 設為不半透明,添加 UISearchBar 後 push 會出現間距

遇到的問題:

Navigation Bar 在設為不半透明時,會出現一些佈局的問題, (圖一) 畫面 push 到 (圖二) 畫面時會多出 12 px 的間距。因為 (圖一) 畫面的 Navigation Bar 在添加 UISearchBar 後的高度為 56 px,比原本高度 44 px 多出了 12 px,導致在 push 到 (圖二) 畫面時會多出 12 px 的間距。


解決的方法:

在 (圖一) 畫面將要消失時加入對 navigationController view 重新佈局的方法。


override func viewWillDisappear(_ animated: Bool) {

    super.viewWillDisappear(animated)

        

    navigationController?.view.setNeedsLayout()

    navigationController?.view.layoutIfNeeded()

}



解決後成果:

Navigation Bar 在設為不半透明時, (圖ㄧ)  畫面 push 到 (圖二) 畫面後, (圖二) 畫面不會在多出 12 px 的間距。


留言