如何在iOS 7中使导航栏和状态栏具有相同的背景?

时间:2014-07-17 15:50:40

标签: ios7 uinavigationbar ios7-statusbar

我使用Xcode 5创建主详细信息项目。默认导航栏如下所示:

enter image description here

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

enter image description here

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

enter image description here

1 个答案:

答案 0 :(得分:5)

你有2个选择。

  1. 创建一个UINavigationViewController,并设置你的ViewController有UINavigationViewController的rootViewController(它会自动创建一个导航栏,上面有正确的状态栏颜色),

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

  3. 在.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];
    }