导航控制器栏被裁剪了。

5
如果选择 status bar style = hide during application launch 隐藏状态栏,而我正在自定义以下的uinavigation bar:
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed: @"navbar-iphone.png"]
                                       forBarMetrics:UIBarMetricsDefault];

当我获取这个东西时:导航栏被裁掉了顶部。 enter image description here 还有: enter image description here 对于这种情况有什么想法和如何解决?

你可以尝试使用 self.navigationController.navigationBar.translucent = NO; - Toseef Khilji
你试过了吗?它不起作用。 - tranvutuan
请看这个网站:https://dev59.com/H2Qn5IYBdhLWcg3wIkMF,它涉及到iOS 7中状态栏和导航栏覆盖视图边界的问题。 - Toseef Khilji
你的导航栏图片 navbar-iphone.png 可能是半透明的吗?你实际使用的 NavBar 图片是什么?能否在问题中附上? - Nitin Gohel
我也有类似的问题。它只在呈现视图控制器时出现,当推送时完美运行。 - parilogic
显示剩余2条评论
1个回答

0
你可以尝试这个。
在应用程序启动期间,这里的viewController是UINavigationController。
//set status bar hidden true.
    [[UIApplication sharedApplication]setStatusBarHidden:YES]; 

//You can set navigation bar frame to start from 0.0,0.0
    self.viewController.navigationBar.frame = CGRectOffset(self.viewController.navigationBar.frame, 0.0, -20.0);

//set the image u want.
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed: @"navbar-iphone.png"]
                                       forBarMetrics:UIBarMetricsDefault];

或者

[[UIApplication sharedApplication]setStatusBarHidden:YES]; 
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed: @"navbar-iphone.png"]
                                           forBarMetrics:UIBarMetricsDefault];
[self.viewController setWantsFullScreenLayout:YES];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接