自分自身まだ調査しきれていないのですが, xcode8となりstoryboardのバージョンの変更になるに辺り、viewのライフサイクル中のAutoLayoutのタイミングの変更が合ったようです。
viewDidLoadで得るサイズはAutoLayout後のサイズではない!!
具体的には(0,0,1000,1000)になっているようで、subview.bounds等でサイズ指定をしていた場合、上手く動かなくなるでしょう
ViewDidAppearで正確にサイズが分かるようですが、表示がおわっているので、ここでサイズの指定を行うのは適していません。
とりあえずの対策
- viewDidLayoutSubviewsに処理を書く
- viewDidLoadで処理の最初にlayoutIfNeededを呼ぶ
- storyboardのバージョンをあげない
等があるようです。
参考 Xcode 8 sets frame size differently. How do I find more details?