2016-09-19 64 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

相關問題