UIViewのレイアウト周りの処理はviewDidLayoutSubViewsの内部でやった方がいい

viewDidLayoutSubviews

メソッドが呼ばれるタイミングはAutoLayoutによってUIViewのフレームが調整・変更された後に呼ばれるのでレイアウト周りの処理はこのメソッドで行うといいらしい。 以下のviewDidLayoutSubviewsというメソッドを呼ばないといけない。
override func viewDidLayoutSubviews() {
    ...
}

レイアウト周りの処理を

viewDidLoad

で行なっていたのでタイミング的に正確なframeが取得できなくてはまってたけど、これで無事解決した!

Related Contents

Pickup Contents