Help us understand the problem. What is going on with this article?

UINavigationBarの下にViewが隠れてしまうのを防ぐ方法

More than 1 year has passed since last update.

このページについて

Storyboardを使わずにコードでViewを作る際によくある、「UINavigationBarの下に潜り込むような形でviewが配置されてしまう」 「viewがNavigationBarで隠れてしまう」という問題を一行で解決するtips。メモも込めて。

方法1: edgesForExtendedLayoutを使う

個人的に推奨
対象のViewControllerで

override func viewDidLoad() {
    super.viewDidLoad()
    edgesForExtendedLayout = []

}

とする。

方法2: navigationBar.isTranslucentを使う

対象のViewControllerで

 override func viewDidLoad() {
    super.viewDidLoad()
    navigationController?.navigationBar.isTranslucent = false  

}

とする。
※言わずもがなこの方法をとるとNavigaitonBarが半透明でなくなる。これにより、上にSearch Barを配置している場合はSearch Barとの境目がわからなかったり、デザインの現実感やフレキシブルさが損なわれたりする。個人的には方法1の方をおすすめする。

結論

魔法のようにviewがNavigationBarの下に表示され始める。
ご指摘等あればどうぞよろしくお願い致しますmm

参考

mercari
フリマアプリ「メルカリ」を、グローバルで開発しています。
https://tech.mercari.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away