2010-07-06 86 views
4

我有一个UINavigationController,它的偏移量为20px。 这是我遇到的确切问题: http://forums.macrumors.com/showthread.php?t=761616 但我似乎无法弄清楚正确的解决方法是什么。UINavigationController偏移量

谢谢,

+0

怎么样你将UINav视图添加到屏幕? – 2010-07-06 05:41:34

+0

我初始化它,将viewController推入并将其视图添加到主视图中... – 2010-07-06 05:43:51

+0

此处同样的问题。 iOS 4.3.1与UISplitViewController结合使用。已经尝试了一切,没有成功。即使设置框架也无济于事。 – Krumelur 2011-04-19 12:59:36

回答

0

确保帧被设置为(0,0)。它可能有这样的空间,因为你将20px添加到Y位置来弥补状态栏,但这已经为我们处理了。

+0

我没有碰到框架。它应该自动对齐到0,0。 另外,如果我尝试手动调整框架,那么我可以看到偏移量,之后只有一秒钟,它弹出到位。 – 2010-07-06 05:45:13

+0

您是否尝试更改“viewWillAppear:”方法中的框架?你确定你没有触及任何代码或xib中的框架? – 2010-07-06 05:55:08

+0

是的,我没有触及任何地方的框架(不在笔尖,也不在代码中)。另外,我刚刚开了一个新项目,做了同样的事情,抵消还在那里。而且,当我隐藏状态栏时,导航栏会出现在屏幕的顶部(比现在高出40 px)。我想我在这里错过了一些东西...... – 2010-07-06 06:32:42

0

您是否已经从Interface Builder?添加了一个状态栏作为顶栏?可能你已经保留了状态栏的空间。

+0

不,我没有碰过界面生成器。我以编程方式添加了导航控制器。 – 2010-07-06 06:07:18

+0

我认为最好隐藏info.plist中的状态栏。在plist中有一个名为“Status bar is initial hidden”的条目。选中该条目并从项目中删除状态栏隐藏代码。 – 2010-07-06 10:11:00

2

我搜索了可能的解决方法之后,人们说它应该以编程方式移动20像素。 这里是我的解决方案:

// adjust the frame of subview which is going to be add 
self.navController.view.frame = CGRectMake(0, 0, 320, 460); 
[self.view addSubView:self.navController.view]; 

现在正常工作对我来说,好运〜:)

1

解决这个问题splitviewcontroller的框架设置为[[UIScreen mainScreen] bounds];

self.mSplitViewC.view.frame = [[UIScreen mainScreen] bounds];