导航栏仅在 iOS5 中部分隐藏

Posted

技术标签:

【中文标题】导航栏仅在 iOS5 中部分隐藏【英文标题】:Navigation Bar partially hidden only in iOS5 【发布时间】:2012-02-07 10:26:08 【问题描述】:

我有一个带有导航控制器的标签栏控制器。在这个导航控制器中有一个导航栏。

实现很简单,没有自定义代码。我在 Xcode 中使用图形界面完成所有工作。

如果我在 ios4 中打开应用程序就完美了。

但如果我在 iOS5 或 iOS 5.0.1 中打开...它会被状态栏部分隐藏。

我该如何解决?

编辑:这是我在 MainWindow.xib 中的实现(抱歉,我需要删除一些名称)

【问题讨论】:

你使用xib吗?难道是导航控制器的导航栏?导航栏是您创建并添加为子视图的吗? 我想为什么这个家伙没有评论或更好的答案就否决了我的答案 【参考方案1】:

我在使用 xib 的其他开发人员制作的旧项目中遇到了同样的问题。 我的解决方案是,如果您使用拖放编程方法,则必须编写一些代码:d。 所以:

在 viewWillAppear 中,将所有 ui 元素向下移动 20 像素。 我在 xib 中为每个元素添加了标签,并使用静态 int 保留大量更改,只需执行一次。

static int oneTine = 0;
    if(!oneTine)
        for(int index = 1001; index<=1005; index++)
           UIView *currentView = [self.view viewWithTag:index];
            CGRect viewFrame = currentView.frame;
            viewFrame.origin.y -=20; 
            currentView.frame = viewFrame;
        
     oneTine = 1;
    

【讨论】:

代码不起作用。但我尝试基于此的其他解决方案:将标签 50 放到导航栏并在 viewWillAppear 中写入:UIView *currentView = [self.view viewWithTag:50]; CGRect viewFrame = currentView.frame; viewFrame.origin.y -=20; currentView.frame = viewFrame; 而且我通常不会投反对票。我总是很感激你的帮助;) 你修改代码了吗?因为代码适用于从 1001 到 1005 的标签 测试view是否是keindof UINavigationbar

以上是关于导航栏仅在 iOS5 中部分隐藏的主要内容,如果未能解决你的问题,请参考以下文章

仅在“ios 5.0”中无法在导航栏上设置图像

导航栏仅显示在第一个 tabBarController

隐藏导航栏将视图“向上”移动

JavaScript - Bootstrap 4 - 仅在折叠时隐藏导航栏

CSS Apple的导航栏仅使用CSS

当 UIImagePickerController 弹出时,状态栏仅在 iOS7 中显示电池