AutoLayoutとかそれにまつわるライフサイクルでの気づき

【AutoLayout】

  • 自分の端末のサイズを手っ取り早く確認したかったらViewControllerの右から3番目のタブからSimulated Metricsを選択して、自分の端末のサイズを選択
  • SubViewをViewに合わせて調整したいとき:
    • SubViewを選択し、Controlを押しながらViewへドラッグ
    • 例えば中央揃えならCenter Holizontally In Containerを選ぶ
  • 上下左右のConstraintを設定するにはPinから
    • Leading Space = 左
    • Trailling Space = 右
    • Bottom Space = 下
    • Top Space = 上
  • 画面サイズによらない幅や高さもPinからWidth, Heightを選択して固定できる

【ViewControllerのライフサイクル】

  • ViewWillAppear → ViewWillLayoutSubViews → ViewDidLayoutSubViews → ViewDidAppear
  • レイアウト絡みがLayoutSubViews
  • ConstraintはupdateConstraintsが呼ばれたタイミングで更新される
  • つまり、updateConstraints→layoutSubviews
  • よって、viewのframeなどをつかった処理を加えたいときはviewDidLayoutSubviewsで行うのが確実かもしれない