我正在更新我的自定义“iAD 横幅控制器”以支持 iOS 7。它基本上是一个UIViewController
由 3 个视图组成的容器:
- 主视图(包含的控制器的视图)
- 横幅视图
- 状态栏背景视图
当 AD 可用时,会有一个动画过渡,使横幅视图和状态栏背景视图看起来从顶部滑动。这一切都使用自动布局进行管理,应该如下所示(状态栏背景是绿色的,在这种情况下它包含一个UINavigationController
):
问题是这样的:使用 UINavigationController 作为包含的控制器,当横幅不可见时,导航控制器在状态栏下扩展 20px。这没关系,也是意料之中的。但是,当我将它的超级视图(容器)向下移动以让 iAD 横幅出现时,20px 扩展仍然存在,结果如下:
但是,如果我执行旋转界面之类的操作,导航控制器会检测到状态栏为“远”,然后自行调整。
我试图分别在控制器和它的视图上调用setNeedsStatusBarAppearanceUpdate
和,但没有结果。layoutIfNeeded
如果你想看看,我附上整个项目:链接到项目