导航栏和上边距

时间:2010-07-28 12:42:31

标签: iphone ipad uinavigationbar margin

我遇到了UINavigationBar及其y-offset的问题。条形图显示时没有UINavigationController作为superview,但这并不重要。在导航栏出现的viewController中,设置如下所示:

    // Add Basic View
    CGRect viewFrame = [[UIScreen mainScreen] applicationFrame];
    UIView *myView = [[UIView alloc] initWithFrame:viewFrame];
 myView.backgroundColor = [UIColor greenColor];
 self.view = myView;
 [myView release];

    UINavigationBar *myBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 50)];
    .... add some Stuff to the bar...
    [self.view addSubview:myBar];
    [myBar release];

当我将navigationBar作为chield View添加到self.view时我假设origin.y = 0意味着该栏应该直接显示在状态栏下方。如果我在iPad上启动应用程序,旋转一次(或更多)然后向下钻取到上面描述的视图,这可以正常工作。在这种情况下,UINavigationBar会正确显示。然而,如果我启动我的应用程序并直接向下钻取到上述控制器(在此特定控制器出现之前不旋转设备),导航栏将滑动状态栏下方的20个点。但是一旦我旋转设备,那么条形图再次正常。我检查了viewFrame.origin.y值,在两种情况下它都是20分,因此我不明白为什么在一种情况下,条形似乎忽略了它的superview的origin.y值,但在另一种情况下却没有。 / p>

我对此感到困惑,还有其他人遇到过这样的问题吗?

非常感谢你的帮助!

聚苯乙烯。我也用UIToolbar尝试过,问题是一样的。

1 个答案:

答案 0 :(得分:0)

是。我的解决方案是在Interface Builder中为MainWindow-iPad.xib文件中的窗口设置“启动时全屏”标志。然后设计你的视图就像总是显示20像素状态栏一样,所以在我的根视图中,我有一个工具栏,位于内容视图中屏幕顶部下方20px处。