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