UIStatusBar setTranslucent:NO避免移动内容

时间:2014-01-25 11:57:33

标签: ios objective-c ios7 uinavigationbar uistatusbar

我试图让我的UINavigationBarUIStatusBar变得不透明,并且没有任何半透明属性。我尝试使用[[UINavigationBar appearance] setTranslucent:NO];,但会将视图内容向下移动几个像素。我希望该内容位于UINavigationBar之下。有一个简单的方法吗?

4 个答案:

答案 0 :(得分:2)

当我使用[[UINavigationBar外观] setTranslucent时,我遇到了同样的问题:NO];在AppDelegate.m上。什么对我有用:设置"在不透明的酒吧"在该不透明导航栏下的每个ViewController场景中的(参见图像)属性

enter image description here

答案 1 :(得分:1)

尝试更改UIViewControllers的以下属性,以消除iOS7的像素移位效果。

enter image description here

答案 2 :(得分:0)

首先,无法使用UIAppearance设置半透明属性。接下来,你的酒吧是半透明的还是不透明的并没有关系。你像素的位置改变了。

自定义导航栏的外观

在iOS 7中,导航栏的tintColor会影响后指示图像,按钮标题和按钮图像的颜色。 barTintColor属性会影响条形本身的颜色。此外,导航栏默认为半透明。关闭或打开半透明不会影响按钮,因为它们没有背景。

答案 3 :(得分:0)

在我的IOS应用中,我需要在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions功能

中执行以下操作
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
    [application setStatusBarStyle:UIStatusBarStyleLightContent];
    self.window.clipsToBounds =YES;
    self.window.frame =  CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);

    //Added on 19th Sep 2013
    self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
}

此处有更详细的讨论ios-7-status-bar-back-to-ios-6-style