1

サブビューの位置とサイズを調整するために IB 経由で Autolayout を使用している UIViewController があります。

何らかの理由で、正しい UIView レイアウトを取得できなかったため、すべてのサブビュー サイズを VC に記録することにしました。

サブビューのサイズを記録しました:

viewDidLoad{
   self.view.layoutIfNeeded()
   print(uiview.size)
}

viewDidLayoutSubviews{
 print(uiview.size)
}
viewWillAppear{
 print(uiview.size)

}
viewDidAppear{
 print(uiview.size)
}

サブビューのサイズは正しいです:

  1. viewDidLoad
  2. viewDidLayoutSubviews
  3. viewWillAppear
  4. viewDidLayoutSubviews

しかし、次の場合は不正確になります:

  1. viewDidLayoutSubviews
  2. viewDidAppear

ViewWillAppear から正しいサブビュー サイズを使用するにはどうすればよいですか? そして、最終的なviewDidLayoutSubviews呼び出しとviewDidAppearでサイズが正しくないのはなぜですか?

4

2 に答える 2