UINavigationBar隐藏/显示时如何防止视图调整大小/转换

时间:2010-05-19 11:21:01

标签: iphone uiimageview uinavigationbar uitabbar resize

我有一个带标签栏和导航栏的应用程序。我推动一个用于显示照片的视图控制器,一次一个。它最初显示条形和前/后控制;延迟之后,这些会在标签栏上使用setNavigationBarHidden:animated:和自定义转换(CGAffineTransformMakeTranslation)进行隐藏。这样可行,但显示照片的视图控制器视图会上下跳跃。如果我将标签栏排除在等式之外,情况也是如此。

如何防止UINavigationBar移动我的视图?我希望照片能够在屏幕上保持固定状态,导航栏会在其顶部区域下降。

4 个答案:

答案 0 :(得分:1)

[[navigationController navigationBar] setBarStyle:UIBarStyleBlackTranslucent];
[[navigationController navigationBar] setAutoresizesSubviews:NO];

这似乎对我有用了!

答案 1 :(得分:1)

是否存在此问题,并使用从UINavigationController

继承的类修复了该问题
-(void)viewWillAppear:(BOOL)animated
{
    self.navigationBar.translucent = YES;
}

对我来说很棒,没有必要将风格设置为UIBarStyleBlackTranslucent。所以它确实保留了我的颜色。

答案 2 :(得分:0)

我知道这是一个老问题,但我通过在Interface Builder中禁用“自动调整子视图”来实现这一目标

alt text

答案 3 :(得分:0)

除非将navigationBar样式设置为半透明,否则我无法找到合适的方法来处理此问题:

theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

除了创建另一个导航栏并向其添加按钮之外,这是最好的(这似乎是Apple在其照片应用程序中所做的事情)