2010-07-28 137 views
1

我遇到UINavigationBar及其y偏移量的問題。該欄在沒有UINavigationController的情況下顯示爲超級視圖,但這應該不重要。在導航欄中顯示的設置中的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]; 

正如我添加的導航欄作爲chield查看到self.view我認爲origin.y = 0將意味着欄應直接獲得顯示在狀態欄的下方。如果我在iPad上啓動應用程序,將其旋轉一次(或多次),然後深入到上面描述的視圖,則可以按預期工作。在這種情況下,UINavigationBar會正確顯示。但是,如果我啓動我的應用程序並直接鑽取上述控制器(在此特定控制器出現之前不旋轉設備),導航欄將在狀態欄下方滑動20個點。但是,只要我旋轉設備,那麼酒吧再次罰款。我已經檢查了viewFrame.origin.y的值,並且在這兩種情況下都是20分,因此我不明白爲什麼在一種情況下,欄似乎忽略了它的superview的origin.y值,但是不在其他情況下。

我真搞不清楚這一點,有其他人經歷過這樣的問題嗎?

非常感謝您的幫助!

詩篇。我也嘗試過使用UIToolbar,問題是一樣的。

回答

0

是的。我的解決方案是在Interface Builder中爲MainWindow-iPad.xib文件中的窗口設置「全屏啓動」標誌。然後設計您的視圖,就好像總是顯示20像素狀態欄一樣,所以在我的根視圖中,我有一個工具欄,位於內容視圖中屏幕頂部以下20px的位置。

+0

對不起,有點晚了,但不錯的解決方案,謝謝! – Robin 2011-01-18 10:51:55