xcode8になってAutoLayoutの挙動が変更された……?

自分自身まだ調査しきれていないのですが, 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?

XCODE8,iOS10にてview.layer周りの表示がされない場合がある

AWS構築サービスの全てをまとめた資料を公開中

ハックノート(TOWN株式会社)では、AWSの導入や構築支援を行っています。AWS導入メニューやサービス詳細、構成例や費用を掲載した資料をダウンロードできます。

AWSの新規導入やAWSへの移行を検討の際は、ぜひご参考ください。