繁体   English   中英

无法在navigationBar上设置为“UIBarPositionTopAttached”

[英]can't set to “UIBarPositionTopAttached” on navigationBar

我制作了UIViewController ,它将navigationController作为父级(连接在storyboard中),我想将statusBar的图片应用于statusBar背景。

但似乎statusBar不能像“半透明”那样状态,

我试着设定

- (void)viewWillAppear:(BOOL)animated {    
 [self.navigationController.navigationBar setBackgroundImage:[UIImage
 imageNamed:@"barTop.png"] forBarPosition:UIBarPositionTopAttached 
 barMetrics:UIBarMetricsDefault];

 [self setNeedsStatusBarAppearanceUpdate];
 ....

}
- (UIStatusBarStyle)preferredStatusBarStyle {
  return UIStatusBarStyleLightContent;
}

UIViewController

但导航和状态栏的背景已经分开。

在此输入图像描述

我尝试将plist文件设为“基于视图控制器的状态栏外观”是和否。 但我仍然无法从viewController配置statusBar。 我在这个公告板上找不到同样的问题。

有谁知道解决方案??或如何调试?

谢谢你的阅读。

(9/3补充说:我想为navigationBar和statusBar制作背景。

在简单的条件下,有一个navigationController和一个ViewController,两个栏都可以将它们的背景组合在一起(默认)。

现在,当我使用tabBarController通过storyboard向多个navigationController指示时,我遇到了错误。)

根据Apple for Status栏,状态栏是透明的。(我认为*总是,不确定)。 链接在这里。 https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/Bars.html

在此输入图像描述

虽然我在几个月前找到了解决方案,但是花了一些时间来调整这一点。

检查我的viewController结构导致问题,发现statusBar的Black是self.window.backgroundColor。 所以这意味着状态栏和navigationController最初成功透明,我的viewController对齐(20,0)。 这是这个问题的根源。 我发现这个问题来源于应用contentInsets设置。 此设置也会影响到view.subviews [0]。

在某些情况下会发生这种情况•通过UInavigationController显示uiViewController的视图•edgesForExtendedLayout处于活动状态•视图的第一个元素是UIScrollView或这些子类(来自日本公告板)

为了解决这个问题,我在storyBoard上创建了原始的navigationController,以便从这些插入设置中分离,然后我明确地将其原点设置为(0,0),并在我的viewController上设置了selfAdjustsScrollViewInsets = NO。

在那之后,我最终可以将viewController的原点设置为(0,0),然后我将navigationBar作为statusBar的后面。

以下链接包含如此多的有用信息。 iOS 7状态栏在iPhone应用程序中恢复到iOS 6默认样式?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM