0
我在xib中構建了一個視圖,但是我在viewDidAppear
之前得到的框架是{0,0,1000,1000}
。這不是我想要的。我爲視圖設置了AutoLayout。如何在viewDidAppear
之前得到正確的框架?如何在iOS 10中的viewDidAppear之前獲得正確的視圖框架?
感謝。
我在xib中構建了一個視圖,但是我在viewDidAppear
之前得到的框架是{0,0,1000,1000}
。這不是我想要的。我爲視圖設置了AutoLayout。如何在viewDidAppear
之前得到正確的框架?如何在iOS 10中的viewDidAppear之前獲得正確的視圖框架?
感謝。
初始化工作順序:
佈局計算完成後,可以使用正確的框架。佈局計算在步驟4之前開始並在步驟5之後結束。所以viewDidAppear
是計算幀的最早步驟。
所以我恐怕你不能早於這一點。您必須將相關代碼移至viewDidAppear
。
非常有幫助,但是如果我想在立即加載xib之後獲得正確的框架,有什麼辦法可以得到它嗎?有人說調用'view.setNeedsLayout()'和'view.layoutIfNeeded()',但不適合我。我想使用xib視圖作爲我的collectionView標題。並且高度基於屏幕寬度。 – Neko
我認爲'view.setNeedsLayout()'和'view.layoutIfNeeded()'的技巧適用於早期的iOS版本。但據我所知,現在根本不可能比'viewDidAppear'更早獲得計算幀大小。你必須找到一個不同的方法來實現你的目標。 – Codo