2010-06-16 57 views
0

我有我的應用程序的窗口(白色背景)起動點:的UIViewController錯位置之前旋轉

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    mainScreen = [[MainScreenController alloc] initWithNibName:@"MainScreenController" bundle:[NSBundle mainBundle]]; 

    // add it to the main window 
    [window addSubview:[mainScreen view]]; 

    // show view 
    [window makeKeyAndVisible]; 

    NSLog(@"started"); 

    return YES; 
} 

而且MainScreenController是(blackBackground)由Interface Builder中創建了一個UIViewController中。

該應用程序執行完美,但第一次,黑色視圖向上移動,如狀態iphone面板的高度(在底部留下白色矩形)。

如果我將iPhone旋轉兩次,視圖就完美地定位在正確的位置,填充黑色背景的所有屏幕。

有什麼想法?

謝謝!

回答

0

檢查IB中的MainScreenController設置。您應該選擇一個模擬狀態欄元素(cmd-1),以便視圖最初位於狀態欄下方。

編輯 - 你爲什麼要在你的委託中調用initWithNibName?我使用的大多數應用程序模板都具有由操作系統初始化的主視圖筆尖,並使用IB並在主VC界面中設置IBOutlet。在調用initWithNibName之後,您的初始幀起始位置可能爲{0,0}。這些行添加您的initWithNibName電話後,以驗證這一點:

NSLog(@"mainscreen frame=%@", NSStringFromCGRect(mainscreen.view.frame)); 

CGRect frame = mainscreen.view.frame; 
frame.origin.y = 20; // move below status bar 
mainscreen.view.frame = frame; 
+0

其實我在這個灰色模擬的狀態欄,所以我不知道有什麼問題... – zegnus 2010-06-18 08:50:49

+0

@zegnus:我已經編輯我的答案。我認爲這個問題是你如何使你的屏幕看起來更健康。 – progrmr 2010-06-18 14:32:50

+0

我已經使用頂部的導航欄重新構建了所有的佈局,現在一切正常。 感謝您的建議! – zegnus 2010-07-21 10:32:32