UIViewController xib frame生效时机

需求: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。当父视图约束发生改变时,又会重新执行以上步骤。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /* UIViewController is a generic controller base class th...
    DanDanC阅读 1,908评论 0 2
  • iPhone 设备的屏幕信息 视图的层次结构 任何一个应用都有且只有一个 UIWindow 对象,负责包含应用中的...
    WesleyLien阅读 1,438评论 0 0
  • 目录 0、前言 一、Auto Layout前世今生 二、Auto Layout基础知识 1.Auto Layout...
    浮游lb阅读 25,110评论 3 90
  • 一:Xib复用 1.Xib简介 File's Owner是控制对象,可以说是nib文件的所有者,控制管理可视化对象...
    谢谢生活阅读 3,379评论 1 10
  • 昨天搬了办公室,调整面积,新办公室,南北通透,又换了显示器。22的,搬家正好断舍离,扔了一些没用的东西,长期不用的...
    心境如花阅读 146评论 0 0