这是一个非常简单的设置,日志让我感到困惑:
我有一个UIViewController子类。没什么特别的。它的观点有一个子视图。我想在变换上做一些动画来缩放视图。在调试过程中,我发现了这个:
----- VIEWDIDLOAD <UIView: 0x9d77bc0; frame = (10 57; 300 206)...
----- VIEWWILLAPPEAR <UIView: 0x9d77bc0; frame = (10 57; 300 206)...
----- VIEWWILLLAYOUTSUBVIEWS <UIView: 0x9d77bc0; frame = (10 57; 460 206)...
----- VIEWDIDLAYOUTSUBVIEWS <UIView: 0x9d77bc0; frame = (10 57; 460 206)...
----- VIEWDIDAPPEAR <UIView: 0x9d77bc0; frame = (10 57; 460 206)...
此子视图的框架在-viewWillAppear和-viewWillLayoutSubviews的调用之间切换。我希望子视图的框架在-viewWillLayoutSubviews和-viewDidLayoutSubviews之间改变。
willAppear和willLayout之间会发生什么?
Xcode 4.5.1,iOS 6
答案 0 :(得分:1)
我不知道确切的答案,但你应该能够通过继承视图并实现覆盖setFrame:
的覆盖来找到它只调用super
中的那个。设置断点并查看调用堆栈。