如何在 iOS 10 中的 viewDidAppear 之前获得正确的视图框架?

How can I get a correct frame of view before viewDidAppear in iOS 10?

我在xib中建了一个视图,但是我在viewDidAppear之前得到的框架是{0,0,1000,1000}。这不是我想要的。我已经为视图设置了 AutoLayout。

为什么会这样,如何在viewDidAppear之前得到正确的帧?

谢谢。

初始化按以下顺序进行:

  1. 加载视图
  2. viewDidLoad
  3. viewWillAppear
  4. viewWillLayoutSubviews
  5. viewDidLayoutSubviews
  6. viewDidAppear

布局计算完成后即可使用正确的框架。布局计算在第 4 步之前开始,在第 5 步之后结束。因此 viewDidAppear 是最早计算帧的步骤。

所以恐怕你不能比这更早得到它。您必须将相关代码移动到 viewDidAppear.