objective-c - 是什么改变了 viewWillAppear 和 viewWillLayoutSubviews 之间的 subview 框架?

标签 objective-c ios uiviewcontroller subview

这是一个非常简单的设置,但日志让我感到困惑:

我有一个 UIViewController 子类。没什么特别的。它的 View 有一个 subview 。我想在变换上做一些动画来缩放 View 。在调试过程中我发现了这一点:

----- 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)...

此 subview 的框架在 -viewWillAppear 和 -viewWillLayoutSubviews 的调用之间发生变化。我希望 subview 的框架在 -viewWillLayoutSubviews 和 -viewDidLayoutSubviews 之间更改。

willAppear 和 willLayout 之间会发生什么?

Xcode 4.5.1、iOS 6

最佳答案

我不知道确切的答案,但您应该能够通过子类化 View 并实现 setFrame: 的覆盖来找到答案。这只是调用 super 中的那个。设置断点并查看调用堆栈。

关于objective-c - 是什么改变了 viewWillAppear 和 viewWillLayoutSubviews 之间的 subview 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12896543/

相关文章:

objective-c - 手动滚动 UIView contentOffset

ios - 核心ML : UIImage from RGBA byte array not fully shown

ios - 如何将图像剪辑到惰性网格内的正方形? ( swift 用户界面)

iphone - 如何实现 UIViewController 旋转以响应方向变化?

IOS如何制作 View 覆盖键盘

objective-c - 是否可以记录正在向另一个方法发送消息的类和对象?

ios - initWithData 返回(空)

ios - 如何反转 CGPath 的点顺序

objective-c - 如何正确使用 NSUserDefaults 类来绕过 View ?

swift - TabbarController 子 Controller 总是返回 nil - Swift 4