在视图生命周期的什么时候,你有通过xib加载的视图的最终帧?

时间:2015-11-05 22:27:51

标签: ios uikit interface-builder

我正在横向设计iOS应用。我的典型工作流程是为每个视图控制器使用具有通用布局的XIB。一些视图控制器附加编程视图设置。对于这个额外的设置,我需要访问XIB的子视图最终帧,然后才能在屏幕上绘制

示例:我有一个带有一个子视图的XIB,它占用了其父视图的一部分。以下是viewDidLoad,viewWillAppear和viewDidAppear方法中子视图框架的打印。

viewDidLoad:
    - width : 535.0
    - height : 600.0

viewWillAppear:
    - width : 535.0
    - height : 600.0

viewDidAppear:
    - width : 671.0
    - height : 414.0

起源全是(0,0)。当子视图的宽度和高度为671.0,414时,但在显示之前,需要进行附加视图设置。还应注意(535,600)是XIB中子视图的宽度和高度。

1 个答案:

答案 0 :(得分:3)

自动布局将回调到视图控制器的viewDidLayoutSubviews。布局引擎通过后。可以多次调用此方法。在最后一次调用结束时,将设置所有视图控制器的子视图帧,并将像素推送到屏幕。