我遇到了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尝试过,问题是一样的。
答案 0 :(得分:0)
是。我的解决方案是在Interface Builder中为MainWindow-iPad.xib文件中的窗口设置“启动时全屏”标志。然后设计你的视图就像总是显示20像素状态栏一样,所以在我的根视图中,我有一个工具栏,位于内容视图中屏幕顶部下方20px处。