2013-08-22 102 views
4

我想制作一个应用程序,它使用导航栏,但仅用于显示标题和一些按钮(它使用的是一个vie容器)。我想导航栏,以“融合”与状态栏,这样让导航栏重叠iOS 7中的状态栏

Navigation Bar and Status Bar

但是当我使用一个通用的视图控制器,将一个导航栏,它只是看起来是这样的:

Without

有没有办法做到这一点?

回答

3

我发现了针对这个特定问题的解决方案。将导航栏的半透明属性设置为NO:

self.navigationController.navigationBar.translucent = NO; 
0

不确定这是否会解决您的问题,但您可以尝试我所做的。

我在视图控制器的右侧菜单中的“模拟Metics”>顶栏>“不透明导航栏”同样的问题

0

的UINavigationController会改变其UINavigationBar的高度要么44点或64点,这取决于相当奇怪和没有记录的一组约束。如果UINavigationController检测到其视图框架的顶部与其UIWindow的顶部可视连续,则它将绘制其导航栏,其高度为64点。如果它的视图的顶部与UIWindow的顶部不连续(即使仅关闭一个点),那么它将以“传统”方式绘制其导航栏,高度为44点。即使在应用程序的视图控制器层次结构中存在多个子级,该逻辑也由UINavigationController执行。没有办法阻止这种行为。

完整说明here

+0

我不想使用UINavigation控制器,只是一个普通的视图控制器。在那里也可以做到吗? – Miterion

0
  • viewcontroller.h文件中创建导航栏IBOutlet中

    @property (weak, nonatomic) IBOutlet UINavigationBar *navBar;

  • 可以在viewDidLoad中做到以下为

    的UIView * addStatusBar = [[UIView的页头] INIT] ;

    //用设备宽度绘制状态栏 addStatusBar.frame = CGRectMake(0,-20,self.view.frame.size.width,20);

    //设置背景颜色到状态栏

    addStatusBar.backgroundColor = [的UIColor colorWithRed:24.0/255。绿色:二百五十五分之二十四。蓝色:24.0/255。阿尔法:1];

    [self.view addSubview:addStatusBar];

    //将你的状态栏添加到你的文件中声明的UINavigationBar * navBar中.h [self。navBar addSubview:addStatusBar];

0
navigationController.navigationBar.clipsToBounds = YES; 

为了UINavigationBar根据其clipsToBounds必须设置为NO(这是默认值)状态栏延长其背景。确保你不要嘲笑它。

解决方案简单: -

navigationController.navigationBar.clipsToBounds = NO;