导航栏仅在 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 中部分隐藏的主要内容,如果未能解决你的问题,请参考以下文章