如何将自定义导航栏添加到iOS 7中的全屏VC并使其着色以匹配状态栏?

时间:2013-12-18 21:17:34

标签: ios7 uinavigationbar uistatusbar

在我正在开发的应用程序(Xcode 5,> = iOS 7自动布局)中,我推送了一个模态视图控制器。我希望模态视图控制器有一个导航栏,所以我添加一个,并添加一个约束,使其与顶部布局指南顶部对齐,因此它位于状态栏下面。

(我正在使用自己的导航栏,因为我想利用系统管理编辑按钮并添加按钮导航栏项。)

标准导航栏有一个非常微妙的浅灰色调。

使用导航控制器,系统会以某种方式对状态栏进行着色,或者向上扩展导航栏,使其将状态栏的颜色与导航栏的颜色相同,效果就好像状态栏是较高的一部分导航栏。

我不知道如何通过导航栏获得此效果我添加到不由导航控制器管理的窗口。我有一些模糊的记忆,我需要设置一些属性,告诉状态栏采用导航栏的色调,但尽管搜索和搜索,我找不到它。我可以在状态栏下放置一个视图,然后摆弄它,直到它的颜色与导航栏的颜色相匹配,但这是一个黑客,如果将来标准导航栏的外观发生变化,这种方法将停止向右看。

有人知道这个的秘密吗?

1 个答案:

答案 0 :(得分:2)

您是否尝试添加导航栏代理

@interface MyClass : UIViewController <UINavigationBarDelegate>

以下方法?

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

请记住从顶部添加20的约束。