1. UIViewController 中 layoutSubViews 的时序
UIViewController中的Xib中的尺寸是 (375, 667)。
iOS 8.x的5S设备上的时序如下:
2016-04-05 15:43:23.637 AutoLayoutDemo[2185:1619209] after super viewDidLoad: {{0, 0}, {375, 667}}
2016-04-05 15:43:23.638 AutoLayoutDemo[2185:1619209] before super viewWillAppear: {{0, 0}, {320, 568}}
2016-04-05 15:43:23.638 AutoLayoutDemo[2185:1619209] after super viewWillAppear: {{0, 0}, {320, 568}}
2016-04-05 15:43:23.644 AutoLayoutDemo[2185:1619209] before super viewWillLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:43:23.644 AutoLayoutDemo[2185:1619209] after super viewWillLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:43:23.644 AutoLayoutDemo[2185:1619209] before super updateViewConstraints: {{0, 0}, {320, 568}}
2016-04-05 15:43:23.645 AutoLayoutDemo[2185:1619209] after super updateViewConstraints: {{0, 0}, {320, 568}}
2016-04-05 15:43:23.645 AutoLayoutDemo[2185:1619209] before super viewDidLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:43:23.645 AutoLayoutDemo[2185:1619209] after super viewDidLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:43:24.147 AutoLayoutDemo[2185:1619209] before super viewDidAppear: {{0, 0}, {320, 568}}
2016-04-05 15:43:24.147 AutoLayoutDemo[2185:1619209] after super viewDidAppear: {{0, 0}, {320, 568}}
2016-04-05 15:43:24.148 AutoLayoutDemo[2185:1619209] before super viewWillLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:43:24.148 AutoLayoutDemo[2185:1619209] after super viewWillLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:43:24.148 AutoLayoutDemo[2185:1619209] before super updateViewConstraints: {{0, 0}, {320, 568}}
2016-04-05 15:43:24.148 AutoLayoutDemo[2185:1619209] after super updateViewConstraints: {{0, 0}, {320, 568}}
2016-04-05 15:43:24.148 AutoLayoutDemo[2185:1619209] before super viewDidLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:43:24.148 AutoLayoutDemo[2185:1619209] after super viewDidLayoutSubviews: {{0, 0}, {320, 568}}
iOS 9.x的5S设备上的时序如下:
2016-04-05 15:50:38.560 AutoLayoutDemo[2464:1661823] after super viewDidLoad: {{0, 0}, {375, 667}}
2016-04-05 15:50:38.560 AutoLayoutDemo[2464:1661823] before super viewWillAppear: {{0, 0}, {375, 667}}
2016-04-05 15:50:38.561 AutoLayoutDemo[2464:1661823] after super viewWillAppear: {{0, 0}, {375, 667}}
2016-04-05 15:50:38.565 AutoLayoutDemo[2464:1661823] before super updateViewConstraints: {{0, 0}, {320, 568}}
2016-04-05 15:50:38.566 AutoLayoutDemo[2464:1661823] after super updateViewConstraints: {{0, 0}, {320, 568}}
2016-04-05 15:50:38.566 AutoLayoutDemo[2464:1661823] before super viewWillLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:50:38.566 AutoLayoutDemo[2464:1661823] after super viewWillLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:50:38.566 AutoLayoutDemo[2464:1661823] before super viewDidLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:50:38.567 AutoLayoutDemo[2464:1661823] after super viewDidLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:50:39.072 AutoLayoutDemo[2464:1661823] before super viewDidAppear: {{0, 0}, {320, 568}}
2016-04-05 15:50:39.072 AutoLayoutDemo[2464:1661823] after super viewDidAppear: {{0, 0}, {320, 568}}
2016-04-05 15:50:39.073 AutoLayoutDemo[2464:1661823] before super updateViewConstraints: {{0, 0}, {320, 568}}
2016-04-05 15:50:39.073 AutoLayoutDemo[2464:1661823] after super updateViewConstraints: {{0, 0}, {320, 568}}
2016-04-05 15:50:39.073 AutoLayoutDemo[2464:1661823] before super viewWillLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:50:39.073 AutoLayoutDemo[2464:1661823] after super viewWillLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:50:39.073 AutoLayoutDemo[2464:1661823] before super viewDidLayoutSubviews: {{0, 0}, {320, 568}}
2016-04-05 15:50:39.073 AutoLayoutDemo[2464:1661823] after super viewDidLayoutSubviews: {{0, 0}, {320, 568}}
2. UIViewController 中 XXXXappear/disappear 的时序
VCA push VCB:
VCA========viewWillDisappear:
VCB========viewWillAppear:
VCA========viewDidDisappear:
VCB========viewDidAppear:
VCB pop to VCA:
VCB========viewWillDisappear:
VCA========viewWillAppear:
VCB========viewDidDisappear:
VCA========viewDidAppear:
VCA present VCB:
VCA========viewWillDisappear:
VCB========viewWillAppear:
VCB========viewDidAppear:
VCA========viewDidDisappear:
VCB dismiss to VCA:
VCA========viewWillDisappear:
VCB========viewWillAppear:
VCB========viewDidAppear:
VCA========viewDidDisappear:
UITabController 中 VCA(UINavigationController 的 rootViewController) 切换到 VCB(UINavigationController 的 rootViewController) 的 tab:
VCB 所在 tab 第一次切换过去:
VCA========viewWillDisappear:
VCB========viewWillAppear:
VCA========viewDidDisappear:
VCB========viewDidAppear:
VCB 所在 tab 之前切换过去过:
VCB========viewWillAppear:
VCA========viewWillDisappear:
VCA========viewDidDisappear:
VCB========viewDidAppear: