最近項目中,使用Storyboard、AutoLayout開發,某個ViewController中嵌套了多個子ViewController,結果在將其添加到父ViewController時,出現坐標異常問題;追蹤代碼發現,這是由于AutoLayout狀態下,獲取Frame數據不準確(或時機不對)導致的,網上找了許久,取長補短,搞到了解決辦法,具體如下:
AutoLayout狀態下,執行完viewDidLoad、viewWillAppear等方法后,還會執行viewDidLayoutSubviews方法,而解決問題的關鍵就在這兒。
在這個方法中,我們可以重新對某個子View,甚至某個ChildViewController的View進行Frame調整。
將代碼執行的得時間放在viewDidLayoutSubviews方法中即可