需求:UIViewController vcA 从xib上加载。vcA的视图上有几个子view其上面的子view布局一致。在上面一个个托太麻烦,新建了一个继承于UIView的类CustomerView,在上面用代码码视图。但是在vcA.view的约束未生效前,customerView的frame是不准确的。所以要在约束生效之后,layout subview.
解决方法:
在- layoutSubviews;里面设置frame就ok了。
补充:
- viewDidLayoutSubviews;这个方法调用的时候,self.view的frame已经计算好了。
UIViewController 从xib加载出来,ViewDidLoad里面frame不准确。
视图的加载顺序是,先计算好父视图frame,再layout subview,再layout subView的subView。当父视图约束发生改变时,又会重新执行以上步骤。
网友评论