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