需求:UIViewController vcA 從xib上加載。vcA的視圖上有幾個子view其上面的子view布局一致烂叔。在上面一個個托太麻煩山宾,新建了一個繼承于UIView的類CustomerView,在上面用代碼碼視圖罕伯。但是在vcA.view的約束未生效前凰荚,customerView的frame是不準(zhǔn)確的燃观。所以要在約束生效之后,layout subview.
解決方法:
在- layoutSubviews便瑟;里面設(shè)置frame就ok了缆毁。
補充:
- viewDidLayoutSubviews;這個方法調(diào)用的時候到涂,self.view的frame已經(jīng)計算好了脊框。
UIViewController 從xib加載出來,ViewDidLoad里面frame不準(zhǔn)確践啄。
視圖的加載順序是浇雹,先計算好父視圖frame,再layout subview屿讽,再layout subView的subView昭灵。當(dāng)父視圖約束發(fā)生改變時,又會重新執(zhí)行以上步驟伐谈。