0

我有一个 UIViewController,我正在编程绘制一个 UINavigationBar。它可以在任一旋转中找到,但是当我在绘制 UINavigationBar 后更改旋转时,它就会消失!

这是更改旋转的代码:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    if (CGRectEqualToRect(navBar.frame, CGRectMake(0, 0, 768, 44))) {
        navBar.frame = CGRectMake(0, 0, 1024, 44);
    } else {
        navBar.frame = CGRectMake(0, 0, 768, 44);
    }
}
4

1 回答 1

2

我从来没有这样做过,所以我在这里建议我从未测试过的东西。

您可以尝试添加[navBar setNeedDisplay]; 但我认为这不是最好的方法。
我宁愿在UIViewController上检查这个方法

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration

从我所见,您还应该从中获得动画效果:

讨论
该方法在用于旋转视图的动画块中调用。您可以覆盖此方法并使用它来配置应在视图旋转期间发生的其他动画。例如,您可以使用它来调整内容的缩放级别、更改滚动条位置或修改视图的其他动画属性。

于 2013-02-02T20:52:21.323 回答