【问题标题】:How to make NavigationBar and StatusBar same background in iOS 7?如何在 iOS 7 中使导航栏和状态栏的背景相同?
【发布时间】:2014-07-17 15:50:40
【问题描述】:

我使用 Xcode 5 创建一个主从项目。默认导航栏如下所示:

现在我创建一个新的 UIViewContrller 文件及其 xib 文件:

我在视图中添加了一个NavigationBar,并设置了背景颜色为绿色,但状态栏区域在导航栏中。如何将其配置为MasterController导航栏显示?

【问题讨论】:

  • 试试这个帖子中的答案:stackoverflow.com/questions/24484352/…
  • @NagaMalleshMaddali 我将self.edgesForExtendedLayout = UIRectEdgeNone; 添加到 PopViewController viewDidLoad 方法中,模拟器中没有任何变化。
  • 尝试在 viewDidLoad 方法中添加这个:self.navigationController.navigationBar.translucent = NO;
  • @NagaMalleshMaddali 没有作为您的提示。然后我为导航栏制作了一个IBoutlet,并在viewDidLoad方法中添加_navigationBar.translucent = NO;,发现导航栏背景颜色不是绿色,是默认颜色。
  • 如何让导航栏的高度看起来像它加上状态栏的高度?

标签: ios7 uinavigationbar ios7-statusbar


【解决方案1】:

您有 2 个选择。

  1. 要么创建一个 UINavigationViewController,并设置你的 ViewController 具有那个 UINavigationViewController 的 rootViewController(它会自动创建一个导航栏,上面有适当的状态栏颜色),

  2. 或者您可以保留您的导航栏,将其 Y 原点设置为 20,然后执行以下操作:

在.h文件中:

@interface XYZViewController : UIViewController <UIBarPositioningDelegate>

在.m文件中:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationBar.delegate = self;
}

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar { 
    return UIBarPositionTopAttached; 
}

编辑:如何在手机横向模式下调整栏的大小:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    [self.navigationBar sizeToFit];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-26
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多