我正在尝试在 UINavigationController 上显示 UILabel。问题是当我将 UILabel 添加为 UIWindow 的子视图时,它不会自动旋转,因为它不是 UIViewController 的子视图(UIViewController 在旋转期间自动处理更新子视图)。
这是我使用的层次结构:
- 界面窗口
- UIL标签
- UINavigationController
所以我想我可以使用以下层次结构:
- 界面窗口
- UIViewController
- 界面视图
- UIL标签
- UINavigationController
- 界面视图
- UIViewController
这样,标签可以显示在 UINavigationController 栏的顶部,同时也可以自动旋转,因为它是 UIViewController 的子视图。
问题是当我尝试将 UINavigationController 添加为视图的子视图时:
[myViewController.view addSubview:myNavigationController.view];
它会向下显示 20 个像素。我猜这是因为它认为它需要为状态栏腾出空间。但是,由于 UINavigationController 被放置在不覆盖在状态栏顶部的 UIView 中,因此它错误地添加了额外的 20 像素。换句话说,UINavigationBar 的顶部位于屏幕的 40 像素标记处,而不是 20 像素处。
是否有任何简单的方法可以将 UINavigationController 及其所有元素(例如导航栏、工具栏、根视图控制器)向上移动 20 像素?或者让它知道它不应该补偿状态栏?
如果不是,我想我需要使用上面提到的第一个层次结构并弄清楚如何旋转标签,使其与导航栏的旋转一致。我在哪里可以找到有关如何执行此操作的更多信息?
注意:通过“在导航栏顶部显示标签”,我的意思是它应该覆盖在导航栏顶部......它不能简单地包裹在一个栏按钮项目中并作为项目之一放置导航栏。