我遇到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,問題是一樣的。
對不起,有點晚了,但不錯的解決方案,謝謝! – Robin 2011-01-18 10:51:55