【发布时间】:2013-06-09 02:07:49
【问题描述】:
我最近下载了Xcode 5 DP 来测试我在 iOS 7 中的应用程序。我注意到并确认的第一件事是,我的视图边界并不总是根据状态栏和导航栏调整大小。
在viewDidLayoutSubviews 中,我打印视图的边界:
{{0, 0}, {320, 568}}
这会导致我的内容显示在导航栏和状态栏下方。
我知道我可以通过获取主屏幕的高度,减去状态栏的高度和导航栏的高度来计算高度,但这似乎是不必要的额外工作。
我该如何解决这个问题?
更新:
我已经找到了解决这个特定问题的方法。将导航栏的 translucent 属性设置为 NO:
self.navigationController.navigationBar.translucent = NO;
这将修复视图在导航栏和状态栏下方的框架。
但是,当您希望导航栏为半透明时,我还没有找到解决方法。例如,在全屏查看照片时,我希望导航栏是半透明的,并且视图被框在它下面。这行得通,但是当我切换显示/隐藏导航栏时,我遇到了更奇怪的结果。第一个子视图(一个 UIScrollView)每次都会改变它的边界 y 原点。
【问题讨论】:
-
我在 xcode 5 DP 中也遇到了同样的问题
-
如果您能找到解决方案,请告诉我
-
在导航栏中查看 tint color 属性,您应该能够将蓝色更改为您想要的任何颜色。
-
有时我讨厌升级 ios,因为 Apple 从来没有给你机会让你的应用向后兼容。
-
如果问题与隐藏导航控制器顶部栏后状态栏下的视图有关,我会参考@Stunner stackoverflow.com/a/18976660/235206 的答案作为解决方案