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で値を変更するのが良いです!