UIKitのライフサイクルに気を付けろ

viewDidLoadでself.view.frame.widthをしたときにiPhoneXとiPhoneXS MAXの2つが同じ値が取れてしまいました。値は375です。

問題はUIViewのライフサイクルで、ViewDidLoadの時はまだframe.widthが取得できないことでした。

    override func viewDidLoad() {
        super.viewWillAppear(animated)
        //ダメ絶対!!!
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
     //ここでやるべし!!
    }

そのためview.frameから値を取得する際はviewDidAppearで値を変更するのが良いです!