2016-09-19 63 views

回答

4

初始化工作顺序:

  1. 的loadView
  2. viewDidLoad中
  3. viewWillAppear中
  4. viewWillLayoutSubviews
  5. viewDidLayoutSubviews
  6. viewDidAppear

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

所以我恐怕你不能早于这一点。您必须将相关代码移至viewDidAppear

+0

非常有帮助,但是如果我想在立即加载xib之后获得正确的框架,有什么办法可以得到它吗?有人说调用'view.setNeedsLayout()'和'view.layoutIfNeeded()',但不适合我。我想使用xib视图作为我的collectionView标题。并且高度基于屏幕宽度。 – Neko

+0

我认为'view.setNeedsLayout()'和'view.layoutIfNeeded()'的技巧适用于早期的iOS版本。但据我所知,现在根本不可能比'viewDidAppear'更早获得计算帧大小。你必须找到一个不同的方法来实现你的目标。 – Codo

相关问题