在ios7中的导航视图控制器中移动导航栏

时间:2014-06-11 10:46:38

标签: ios objective-c ios7 uinavigationbar

我想在导航栏中添加20点的保证金。我需要它,因为我想在状态栏下显示另一种背景颜色,如youtube所示:

enter image description here

我找到了

iOS Developer library说:如果使用UIBarPositionTop,则窗口背景提供状态栏背景外观。

我找到solution for toolbar,但我无法在导航视图控制器中移动导航栏。我只是为我的导航栏设置了UIBarPositionTop,但它没有任何改变。

-(UIBarPosition)positionForBar:(id<UIBarPositioning>)bar {
    NSLog(@"position method called");
    return UIBarPositionTop;
}

我仍然看到状态栏的灰色背景而不是白色。

enter image description here

是否可以使用导航栏执行此操作,还是应该使用带工具栏的视图?

(XCode 6,开发目标7.0+,sdk 8.0,自动布局)

更新:另一种解决问题的方法

我看了this question 并且理解,没有必要增加保证金。我在导航栏控制器上添加了我需要的背景颜色视图,它解决了我的问题。

2 个答案:

答案 0 :(得分:1)

当您将UIView添加到UIWindow时,您应该将UIViews大小更改为不覆盖标题栏。如何做到这一点在本文中有详细记载:

Offset on UIWindow addSubview

答案 1 :(得分:0)

我希望我理解正确,看看大小检查员,ios 6/7三角洲。 请查看此链接以获取解释: Interface Builder: What are the UIView's Layout iOS 6/7 Deltas for?