self.view.frame/bounds 的 UIViewController 在 viewDidLoad 和 viewWillAppear 之间发生了变化 iOS8
self.view.frame/bounds of UIViewController changed between viewDidLoad and viewWillAppear iOS8
我的 iPhone 应用程序中的视图有一个非常奇怪的问题。
我有两个 UIViewController
subclasses A
和 B
。
class B
的 UIViewController
(我们称之为 b
)是从 UIViewController
的 [=] 内部的方法调用的16=](a
)。
但是当显示 b
时,b
的 "root" 视图的框架和边界在 viewDidLoad
和 viewWillAppear
的调用之间发生了神奇的变化。
我不知道为什么会这样。据我所知,我所有的其他观点都没有这个问题。
这些是框架和界限:
在viewDidLoad
中:
self.view.frame: {0, 0}, {375, 667}
self.view.bounds: {0, 0}, {375, 667}
在 viewWillAppear:
中:
self.view.frame: {0, 64}, {375, 554}
self.view.bounds: {0, 0}, {375, 554}
我做了一个截图来演示这个问题。
黄色区域是b
的self.view
。红色和绿色的是 self.view
的子视图。它们只是用于我的布局。我不认为它们对 self.view
框架或边界有任何影响。
有谁知道导致此问题的原因吗?
好的,经过几个小时(字面意思!)的调试,我发现了我的错误:我忘记在我的自定义 init 方法中调用 self = [super init];
。这导致了一些奇怪的行为。
感谢您的宝贵意见!
我的 iPhone 应用程序中的视图有一个非常奇怪的问题。
我有两个 UIViewController
subclasses A
和 B
。
class B
的 UIViewController
(我们称之为 b
)是从 UIViewController
的 [=] 内部的方法调用的16=](a
)。
但是当显示 b
时,b
的 "root" 视图的框架和边界在 viewDidLoad
和 viewWillAppear
的调用之间发生了神奇的变化。
我不知道为什么会这样。据我所知,我所有的其他观点都没有这个问题。
这些是框架和界限:
在viewDidLoad
中:
self.view.frame: {0, 0}, {375, 667}
self.view.bounds: {0, 0}, {375, 667}
在 viewWillAppear:
中:
self.view.frame: {0, 64}, {375, 554}
self.view.bounds: {0, 0}, {375, 554}
我做了一个截图来演示这个问题。
黄色区域是b
的self.view
。红色和绿色的是 self.view
的子视图。它们只是用于我的布局。我不认为它们对 self.view
框架或边界有任何影响。
有谁知道导致此问题的原因吗?
好的,经过几个小时(字面意思!)的调试,我发现了我的错误:我忘记在我的自定义 init 方法中调用 self = [super init];
。这导致了一些奇怪的行为。
感谢您的宝贵意见!