我一直在查看有关边界与框架的一些帖子,但仍然有些困惑。
我有以下层次结构: UITabBarController > UINavigationController > UIViewController
当我尝试以下 NSLog
NSLog(@"%f %f %f",[[[self tabBarController] view] bounds].size.height, [[[self navigationController] view] bounds].size.height, [[self view] bounds].size.height);
我得到以下输出:
480.000000 431.000000 460.000000
我了解状态栏高度的 20 个差异原因,但我不明白为什么 UIViewController 的界限不包括状态栏高度,但 UINavigationController 和 UITabBarController 的界限包括...
完善我的问题
1)为什么顶部tabBarController的高度是480.0(为什么不排除状态栏高度20pt???)。好的,让我假设高度永远不会排除状态栏高度并继续前进
2) UINavigationController 的高度为 431.0(好吧,合理的猜测是它是 480-49,其中 49 是标签栏的高度)。但是为什么它选择性地排除标签栏的高度而不是状态栏的高度???Apple 的 View Programming Guide 似乎没有解释这一点……但让我们继续……
3) 为什么我的 UIViewController 的高度是 460?!
(3a) 为什么它不像UITabBarController和UINavigationController那样排除状态栏的20pt高度???
(3b) 更重要的是,为什么它不排除导航栏的高度(即为什么不应该是 431-44 = 387?!)
(3c) 为什么在我的 UINavigationController内部的 UIViewController 的高度比 UINavigationController 长???